あらすじ
システムパフォーマンスの要点を効率的に学べる決定版
Webシステムが主流となりつつある昨今、急激なアクセス増加や高負荷処理にも耐え、パフォーマンスを維持できるシステム作りが求められています。しかし、パフォーマンスの考え方は一朝一夕に身につけられるものではなく、開発・運用現場で長年の経験を積んだ末にノウハウと共に得られるものです。
本書は、開発・運用の現場で多くの案件を経験してきたベテランのコンサルタントたちが、その経験から得られたノウハウとともに、システムパフォーマンスの基礎をわかりやすく解説するものです。
パフォーマンスの概念から、分析方法、チューニングの考え方、実際の製品を想定したパフォーマンスまで、幅広く取り上げます。理論だけでなく、実例を挙げながら解説するので、実践的な知識を得ることができます。また、パフォーマンスはシステムアーキテクチャと密接につながっているため、パフォーマンスを学びながら、システムアーキテクチャを効率的に学ぶこともできます。本書では、Web3階層やバッチ処理に加え、仮想化環境やクラウド環境を扱います。
※本電子書籍は同名出版物を底本として作成しました。記載内容は印刷出版当時のものです。
※印刷出版再現のため電子書籍としては不要な情報を含んでいる場合があります。
※印刷出版とは異なる表記・表現の場合があります。予めご了承ください。
※プレビューにてお手持ちの電子端末での表示状態をご確認の上、商品をお買い求めください。
感情タグBEST3
Posted by ブクログ
パフォーマンスを理解するためには、内部のアーキテクチャーを理解する必要がある
ブラックボックス化が進んでも、パフォーマンスだけは、エンジニアが仕組みを理解して、チューニングすべきである
アルゴリズムの理解:アルゴリズム良し悪しがパフォーマンスを決定する
計算量でアルゴリズムを評価する
レスポンスとスループットは違う。レスポンスは応答時間、スループットは仕事量
主要なアルゴリズム
配列とループ処理
リストとループ処理
探索木
ハッシュ
キュー
スタック
ソート
キャッシュ
ロック
パフォーマンスの改善は、まず測定することから
パフォーマンス情報は3種
合計(サマリ形式)
ログ(イベント記録方式)
スナップショット(瞬間の状況把握)
トラブルの最初の切り分けは、どこで問題が起きているか
キュートスレッド
平均待ち時間 ランダム呼 M/M/1
OS Linux sar,vmstat,ps,netstat,iostat,top,wireshark,tcpdump,pstack
Windows タスクマネジャー、パフォーマンスモニター、リソースマネジャー
アプリ Webサーバ、APサーバ、DBサーバ、ストレージ、ネットワーク
チューニングは、アルゴリズム、アーキテクチャーを理解して分析ができれば、定石のテクニックを使う
無駄をできるだけなくす
インデックス
まとめて処理する
再処理する
高速化と並列化
スケールアップ(CPU追加、クロックアップ)と、スケールアウト(別サーバを追加)
局所性
・ループの省略、キャッチボールの削減
・参照頻度が高いデータは、キーバリューストア化、ハッシュ化
・同期を非同期に
・帯域制御
・負荷分散、ラウンドロビン 等
パフォーマンステスト
・時間内におわらない
・パフォーマンスがでない
・本番環境では問題が発生
・負荷シナリオに不備
・バッファ・キャッシュの利用を想定しなかった
・シンクタイム
パフォーマンステストの種類
・限界テスト(最低パフォーマンス、最大パフォーマンス)
・縮退運転
・基盤パフォーマンス
・アプリ単体パフォーマンス
・耐久テスト
工程管理とパフォーマンス
要件定義 スループット、レスポンスタイム、ユーザ多重度
基本設計 システム選定、パフォーマンステスト環境、パフォーマンス設計
パフォーマンステスト設計 テストスケジュール、人員手配、連絡体制
基盤結合テスト 基盤パフォーマンステスト
結合テスト 多重実行テスト
総合テスト 負荷テスト、限界テスト、耐久テスト
運用テスト パフォーマンス監視テスト、障害テスト
CONTENTS
はじめに
【第1章】パフォーマンスの基礎的な考え方
1.1 パフォーマンスを学ぶために必要なこと
1.2 アルゴリズムのメリット/デメリットと学習法
1.3 アルゴリズムの実例とパフォーマンスの違い
1.4 レスポンスとスループットの違い
1.5 アルゴリズムの具体例
【第2章】パフォーマンス分析の基本
2.1 パフォーマンスの第一歩は測定から
2.2 必要なパフォーマンス情報とは
2.3 パフォーマンス分析で重要な理論
2.4 OSのコマンド
【第3章】実システムのパフォーマンス分析
3.1 Web/APサーバとJava/Cアプリ
3.2 DBサーバのパフォーマンス測定
3.3 ストレージのパフォーマンス分析の考え方
3.4 ネットワークのパフォーマンス分析の考え方
3.5 原因調査
【第4章】パフォーマンスチューニング
4.1 パフォーマンスとチューニング
4.2 パフォーマンスチューニングの定石
4.3 現場で用いられるテクニック
4.4 実際の業務で遭遇するパフォーマンス
4.5 チューニングの例
【第5章】パフォーマンステスト
5.1 パフォーマンステストの概要
5.2 よくある失敗:9つのアンチパターン
5.3 パフォーマンステストの種類
5.4 プロジェクト工程で考えるパフォーマンステスト
5.5 パフォーマンステストの課題と必要ノウハウ
【第6章】仮想化環境におけるパフォーマンス
6.1 仮想化とパフォーマンス
6.2 仮想化概要
6.3 サーバ仮想化の主な技術(オーバコミット)
6.4 仮想化環境のパフォーマンスの考え方と分析方法
【第7章】クラウド環境におけるパフォーマンス
7.1 クラウド環境におけるパフォーマンスの考え方
7.2 クラウドとオンプレミスの違い
7.3 クラウド環境の内部構造と最適なアプリケーション方式
7.4 クラウド環境におけるパフォーマンス分析の仕方
7.5 クラウド環境での開発フェーズのアプローチ
7.6 クラウド環境での運用フェーズのアプローチ
参考文献
索引
ISBN:9784798134604
出版社:翔泳社
判型:A5
ページ数:336ページ
定価:2580円(本体)
発売日:2014年06月20日初版第1刷
Posted by ブクログ
主にサーバ観点でのパフォーマンス管理だが、考え方や手法の選択肢を広げるという意味で組込業界でも応用できそう。
特にパフォーマンス計測データをサマリ形式、スナップショット形式、イベント記録形式に分類して使い分ける考え方は、非常に勉強になった。なんとなくやっていた使い分けを、すっきりと言語化してくれているので、人と議論するときの参考にもできそう。
Posted by ブクログ
ありそうでなかった本かなと。
DB関連はよくパフォーマンスの話を扱う本がありますが、全体的に扱っている本は数すくない、しかも和書で。こういう形でまずは全体を把握し、より詳細なパフォーマンスチューニングを学ぶために、詳細なことをまとめた本読む、というのがいいかな、と思います。いい本でした。
Posted by ブクログ
システムパフォーマンスについて知りたく手に取りました。
プロジェクトによってシステムパフォーマンスについて調査方法に偏りがあり、そんなものなのかなと思っていました。
この書籍を通して、システムパフォーマンスの課題とアプローチ、その考え方について論が展開されていくので理解を深めることができました。
また、基本情報技術者試験で概説を学んだときに利用シーンが上手く描けていないところがありましたが、鮮明にイメージすることができるようになりました。
Posted by ブクログ
主にサーバ周りのパフォーマンスについて書かれている印象だった。あまり特定の技術や製品については書かれておらず、基本的な考え方なんかを基礎から説明する感じになっている。
「第6章 仮想化環境におけるパフォーマンス」、「第7章 クラウド環境におけるパフォーマンス」が良かった。これまでのオンプレ環境と比較してどう変わるのか、何が良くなるのかがざっと説明されている。
システムを見ていると、ある対策を打つためにその理由、有効性、デメリットなどを説明して理解を得る必要がある。自分の中で理解できていても、なかなかうまく説明するのは難しい。こういう言語情報を仕入れておくと、人に伝えるのがやりやすくなる気がする。
Posted by ブクログ
パフォーマンスに関する基礎的な知識が体系だって整理されており、基本は大変理解しやすい。関連する業務に関わる時に、考え方の整理やリファレンスとして役に立ちそう。後半は割と具体的なので、こちらは多少とも経験がないと辛いかもしれないが。