翔泳社の公式通販SEshopは全国送料無料!
ヘルプ 新規会員登録 ログイン
SEshop

絵で見てわかるシステムパフォーマンスの仕組み 【PDF版】

小田 圭二(著) , 岡田 憲昌(著) , 榑松 谷仁(著) , 平山 毅(著)

商品番号
135040
販売状態
発売中
納品形態
会員メニューよりダウンロード
発売日
2017年01月27日
ISBN
9784798135045
データサイズ
約10.3MB
制限事項
印刷可・テキストのコピー可
キーワード
開発  アルゴリズム  クラウド  電子書籍【PDF版】  絵で見てわかる

2,838円(税込)(本体2,580円+税10%)
送料無料

1,032pt (40%)
ポイントの使い方はこちら

在庫あり

初回購入から使えるポイント500円分プレゼント

紙の書籍はこちら

※1点の税込金額となります。 複数の商品をご購入いただいた場合のお支払金額は、 単品の税込金額の合計額とは異なる場合がございますので、予めご了承ください。

  • 本製品は電子書籍【PDF版】です。
  • ご購入いただいたPDFには、購入者のメールアドレス、および翔泳社独自の著作権情報が埋め込まれます。
    PDFに埋め込まれるメールアドレスは、ご注文時にログインいただいたアドレスとなります。
    Amazon Payでのお支払いの場合はAmazonアカウントのメールアドレスが埋め込まれます。
  • 本製品を無断で複製、転載、譲渡、共有および販売を行った場合、法律により罰せられる可能性がございます。
  • ご購入の前に必ずPDF利用案内をお読みください。

システムパフォーマンスの要点を効率的に学べる決定版

Webシステムが主流となりつつある昨今、急激なアクセス増加や高負荷処理にも耐え、パフォーマンスを維持できるシステム作りが求められています。しかし、パフォーマンスの考え方は一朝一夕に身につけられるものではなく、開発・運用現場で長年の経験を積んだ末にノウハウと共に得られるものです。

本書は、開発・運用の現場で多くの案件を経験してきたベテランのコンサルタントたちが、その経験から得られたノウハウとともに、システムパフォーマンスの基礎をわかりやすく解説するものです。

パフォーマンスの概念から、分析方法、チューニングの考え方、実際の製品を想定したパフォーマンスまで、幅広く取り上げます。理論だけでなく、実例を挙げながら解説するので、実践的な知識を得ることができます。また、パフォーマンスはシステムアーキテクチャと密接につながっているため、パフォーマンスを学びながら、システムアーキテクチャを効率的に学ぶこともできます。本書では、Web3階層やバッチ処理に加え、仮想化環境やクラウド環境を扱います。

PDF版のご利用方法

  1. ご購入後、SEshopにログインし、会員メニューに進みます。
  2. ご購入電子書籍およびデータ > [ご購入電子書籍およびダウンロードデータ一覧]をクリックします。
  3. 購入済みの電子書籍のタイトルが表示されますので、リンクをクリックしてダウンロードしてください。
  4. PDF形式のファイルを、お好きな場所に保存してください。
  5. 端末の種類を問わず、ご利用いただけます。

【第1章】パフォーマンスの基礎的な考え方

1.1 パフォーマンスを学ぶために必要なこと
1.2 アルゴリズムのメリット/デメリットと学習法
 1.2.1 アルゴリズムとは
 1.2.2 アルゴリズムの根幹
 1.2.3 アルゴリズムを学ぶコツ
1.3 アルゴリズムの実例とパフォーマンスの違い
 1.3.1 身近にあるアルゴリズムの例
 1.3.2 パフォーマンスへの影響度合い
 1.3.3 アルゴリズムを評価する指標
1.4 レスポンスとスループットの違い
1.5 アルゴリズムの具体例
 1.5.1 配列とループ処理
 1.5.2 リストとループ処理
 1.5.3 ツリーと探索
 1.5.4 ハッシュアルゴリズム
 1.5.5 キュー
 1.5.6 スタック
 1.5.7 ソート(Quickソート)
 1.5.8 キャッシュ①(ライトバック:write back)
 1.5.9 キャッシュ②(ライトスルー:write through)
 1.5.10 ロックとパフォーマンス

【第2章】パフォーマンス分析の基本

2.1 パフォーマンスの第一歩は測定から
2.2 必要なパフォーマンス情報とは
 2.2.1 「はさみうち」の原則
 2.2.2 パフォーマンス情報の3種類
 2.2.3 システムのモデルとパフォーマンストラブル時の動き
 2.2.4 データの種類と分析のコツ
2.3 パフォーマンス分析で重要な理論
 2.3.1 待ち行列理論の用語
 2.3.2 待ち行列の平均待ち時間を計算する
 2.3.3 使用率と待ち行列の例
 2.3.4 実際にどのような情報を取得するのか
2.4 OSのコマンド
 2.4.1 sar
 2.4.2 vmstat
 2.4.3 ps
 2.4.4 netstat
 2.4.5 iostat
 2.4.6 top
 2.4.7 パケットダンプ(wireshark、tcpdumpなど)
 2.4.8 pstack
 2.4.9 システムコール(straceなど)
 2.4.10 プロファイラ
 2.4.11 Windowsの場合

【第3章】実システムのパフォーマンス分析

3.1 Web/APサーバとJava/Cアプリ
 3.1.1 Webサーバのアクセスログ
 3.1.2 アプリ/APサーバのログ
3.2 DBサーバのパフォーマンス測定
 3.2.1 DBMSのパフォーマンス測定のセオリー
 3.2.2 パフォーマンス分析の仕上げ
3.3 ストレージのパフォーマンス分析の考え方
 3.3.1 ストレージの用語
 3.3.2 ストレージパフォーマンスの考え方――IOPSを大事にする
3.4 ネットワークのパフォーマンス分析の考え方
3.5 原因調査
 3.5.1 初心者が陥りがちな罠
 3.5.2 心がけるべき姿勢
 3.5.3 実際の調査の流れ

【第4章】パフォーマンスチューニング

4.1 パフォーマンスとチューニング
 4.1.1 現実のパフォーマンスは?
 4.1.2 現場では「大局観」を持つべし
4.2 パフォーマンスチューニングの定石
 4.2.1 設定は大きすぎても、小さすぎても駄目。ほどほどに
 4.2.2 チューニングは1つずつ進める
 4.2.3 再利用することで速くする
 4.2.4 まとめて処理をする(集約、ピギーバック)
 4.2.5 高速化と並列化
 4.2.6 スケールアップとスケールアウト
 4.2.7 局所性
4.3 現場で用いられるテクニック
 4.3.1 ループの省略、キャッチボールの削減
 4.3.2 参照頻度の高いデータはキーバリューストア化かハッシュ化する
 4.3.3 参照頻度の高いデータは使う場所の近くに置く
 4.3.4 同期を非同期に変える
 4.3.5 帯域制限
 4.3.6 LRU方式
 4.3.7 処理の分割またはロックの粒度の詳細化
 4.3.8 不揮発なライトバックのキャッシュの採用
 4.3.9 マルチレイヤのキャッシュの採用
 4.3.10 ジャンボフレームと高速ネットワークの採用
 4.3.11 負荷分散、ラウンドロビン
 4.3.12 アフィニティ、バインド、Stickyセッション
 4.3.13 copy on write(COW)
 4.3.14 ジャーナル、ログ
 4.3.15 圧縮
 4.3.16 楽観的ロック
 4.3.17 カラムナデータベース(Columnar Database)
 4.3.18 サーバのパフォーマンス設定は初期値=最大値?
4.4 実際の業務で遭遇するパフォーマンス
 4.4.1 パフォーマンス比較の参考データ
 4.4.2 キャッシュヒットは高いとは限らない
 4.4.3 ストレージのチューニング方針
 4.4.4 サイズは足りているのにディスクを追加する
 4.4.5 パフォーマンス観点でのファイル分割
 4.4.6 90パーセンタイル
 4.4.7 読み込みと書き込みの割合
4.5 チューニングの例
 4.5.1 例1:二重ループ中のselect文発行
 4.5.2 例2:たまにパフォーマンスが劣化する

【第5章】パフォーマンステスト

5.1 パフォーマンステストの概要
 5.1.1 プロジェクト工程におけるパフォーマンステスト
 5.1.2 役割に応じたパフォーマンステストのかかわり方
5.2 よくある失敗:9つのアンチパターン
 5.2.1 期間内に終わらない!
 5.2.2 パフォーマンスが出ない! パフォーマンス問題が解決できない!
 5.2.3 環境差異を考慮しないために問題が発生
 5.2.4 負荷シナリオ設計に不備があるために問題が発生
 5.2.5 バッファ/キャッシュの利用を考慮しないために問題が発生
 5.2.6 シンクタイムを考慮しないために問題が発生
 5.2.7 報告内容が理解できずお客様が納得しない
 5.2.8 不信感により、お客様が納得しない
 5.2.9 テストに時間がかかる
5.3 パフォーマンステストの種類
 5.3.1 実施のサイクル
 5.3.2 狭義のパフォーマンステスト
 5.3.3 限界テスト(限界パフォーマンス、縮退パフォーマンス、障害テスト)
 5.3.4 基盤パフォーマンステスト
 5.3.5 アプリ単体パフォーマンステスト
 5.3.6 耐久テスト
 5.3.7 隣接分野
5.4 プロジェクト工程で考えるパフォーマンステスト
 5.4.1 要件定義
 5.4.2 プロジェクト企画
 5.4.3 【基本設計】システム選定
 5.4.4 【基本設計】パフォーマンステスト環境
 5.4.5 【基本設計】その他、パフォーマンス設計に関して決めること
 5.4.6 【パフォーマンステスト設計】テストスケジュール詳細
 5.4.7 【パフォーマンステスト設計】人員手配と連絡体制
 5.4.8 【基盤結合テスト】基盤パフォーマンステスト
 5.4.9 【結合テスト】多重実行テスト
 5.4.10 【総合テスト】負荷テスト、限界テスト、耐久テスト
 5.4.11 【運用テスト】パフォーマンス監視テスト、障害テスト
 5.4.12 【納品】パフォーマンステスト結果の検収報告
 5.4.13 【運用】初期稼働確認
5.5 パフォーマンステストの課題と必要ノウハウ
 5.5.1 パフォーマンス見積もり能力
 5.5.2 効率的な繰り返し実施能力
 5.5.3 Oracle Application Testing Suite使用の効果

【第6章】仮想化環境におけるパフォーマンス

6.1 仮想化とパフォーマンス
6.2 仮想化概要
 6.2.1 サーバ仮想化とは?
 6.2.2 仮想化の種類
6.3 サーバ仮想化の主な技術(オーバコミット)
 6.3.1 CPUの仮想化技術
 6.3.2 メモリの仮想化技術
6.4 仮想化環境のパフォーマンスの考え方と分析方法
 6.4.1 パフォーマンス分析に使用するツール
 6.4.2 CPUのパフォーマンス管理
 6.4.3 メモリのパフォーマンス管理
 6.4.4 ストレージのパフォーマンス管理
 6.4.5 ネットワークのパフォーマンス管理

【第7章】クラウド環境におけるパフォーマンス

7.1 クラウド環境におけるパフォーマンスの考え方
 7.1.1 クラウド環境になるとパフォーマンスが遅くなるのか?
7.2 クラウドとオンプレミスの違い
 7.2.1 クラウドの定義
 7.2.2 クラウドの特徴から見るオンプレミス環境からの変更点
 7.2.3 クラウドの実装形態
 7.2.4 クラウドのサービス提供形態から見るオンプレミス環境との違い
 7.2.5 リソースの変動要素と固定要素の見極め
7.3 クラウド環境の内部構造と最適なアプリケーション方式
 7.3.1 集約か? 分散か?
 7.3.2 密結合か? 疎結合か?
 7.3.3 SOAPか? RESTか?
 7.3.4 フロントの分散化:ネットワークアクセスの方法
 7.3.5 バックエンドの分散化:データストアの考え方(ACIDからBASEへ)
 7.3.6 TCP通信の高速化
 7.3.7 オブジェクトストレージの高速化
 7.3.8 C言語か? Java言語か? スクリプト言語か?
 7.3.9 クラウド環境でのハイパフォーマンスサービスのアーキテクチャ
 7.3.10 オープンマイグレーションとクラウドマイグレーション
 7.3.11 クラウドの内部構成を推察してみる
7.4 クラウド環境におけるパフォーマンス分析の仕方
 7.4.1 クラウド環境のベンチマーク取得の価値と常に進化するパフォーマンス値
 7.4.2 Webシステムでの基本的な分析アプローチ
 7.4.3 バッチシステムでの基本的な分析アプローチ
 7.4.4 クラウドの自動拡張機能
 7.4.5 クラウド環境のばらつきを解析する統計的アプローチ
7.5 クラウド環境での開発フェーズのアプローチ
 7.5.1 サイジング(基本設計)
 7.5.2 パフォーマンステスト(総合テスト)
 7.5.3 プロジェクトマネージメント
7.6 クラウド環境での運用フェーズのアプローチ
 7.6.1 キャパシティ管理
 7.6.2 障害発生時の縮退キャパシティ運用
 7.6.3 ライフサイクルとリプレース

COLUMN

情報科学を学ぶことの大事さ
インフラエンジニアがプログラミングを学ぶ重要性
DBMSはデータ構造とアルゴリズムの宝庫
【上級編】ロックの仕組みはどうやって実装されているのか
【上級編】正常系だけじゃないんだよ。パフォーマンスというものは!
パフォーマンスは定期的に確認すべきか
時刻同期は大事
バッチのパフォーマンス測定
パフォーマンストラブルデータはどれくらいの期間記録しておくべき?
各種パフォーマンス情報取得のタイミングは合わせる? 合わせない?
パフォーマンス分析の夢のツール?
コンパイラはRDBMSと同じ道を歩むのか?
待ち行列の先頭は何をしているのか?
ハードウェア支援機能
DRS、まだ使ってないの?
待ち時間感度(Latency-Sensitivity)機能
クラウドコンピューティングが実現する究極のグローバリゼーション
ハイブリッド構成のコスト管理は、リアルオプションを駆使したポートフォリオマネージメント
クラウドでは損益分岐点を常にプラス化できる(独自SaaS提供に最適なコストモデル)
抽象化されるクラウド環境をとらえられるアメリカ人――絵とイメージの重要性
パフォーマンス分野は理系エンジニアの特権?
クラウド環境では、経営者も詳細なパフォーマンスデータを意識する?
閾値設定とシステム安全係数、標準化の価値とは
クラウドが実現するDevOpsにおけるパフォーマンスチューニングの効率化

各種問い合わせは以下のリンクからご連絡ください

感想・レビュー

まみり さん

2018-09-05

★★★★☆新しい本ではないけれど、古臭さはなく、学ぶべきことはあまり変わっていないんだなあと感じる。パフォーマンスにかかる問題にあたったときに、たしかに闇雲で手当たり次第で、だいたいあまり、特定に至らない…。一回では理解しきれなかったので、時間をおいて、また読もうと思う。

syuu0822 さん

2019-03-16

システムのパフォーマンスについて、アプリ、インフラの両方の観点から説明した本です。アプリ、インフラでどのような部分がボトルネックになるのか分かりやすく書かれています。 自分がインフラ側の人間のせいかもしれませんが、パフォーマンス問題というのは大体インフラ側に要因があり、インフラ側で解決する印象がありましたが、本書を読んでやはりそうなのだと思い至りました。 パフォーマンス解析の方法やテストの観点にも触れており、大変ためになる良書でした。

とかげ さん

2021-07-20

上司大絶賛の推薦本なのに私の理解力不足が情けなく。絵になっているのはとっつきやすかったし、後半でゆるい人アイコン見てほっとしたりしていました。アルゴリズムは基本情報技術者試験でも触れていてパフォーマンスに関わるのだなあとなりました。肝心の取り組まねばならないクラウドの性能試験については…何を見なければならないのだろう…AWSで何が見れるのか知らないことにはか。2014年からもっと変わっていることもあるだろうしうーむむ。

関連商品

古代中国服飾図鑑―唐代―【PDF版】

3,960円(税込)

2024.05.28発売

おすすめ特集

法人・教育機関のお客様へ

【法人・教育機関のお客様へ】新年度の大口注文・お見積りなど、お気軽にご相談ください

Webデザイン特集

デザインやコーディングなど、Webデザインに役立つスキルが身につく書籍を揃えました

生成AI特集

テキスト生成、画像生成、動画生成など、生成AI活用のスキルが身につく本をご紹介

新社会人におすすめの本

新社会人の役に立つスキルが身につく本。ビジネスパーソンとしてスタートダッシュを切ろう!

プログラミング教育の本

小学校から必修化!人気の『ルビィのぼうけん』ほかプログラミング教育の本はこちら

翔泳社のセミナー・講座

開発・ビジネス・マーケティング・EC運営・営業支援など、幅広いジャンルの講座を開催

特集をもっと見る