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

著者 :
  • 翔泳社
3.88
  • (9)
  • (10)
  • (13)
  • (0)
  • (0)
本棚登録 : 194
感想 : 12
本ページはアフィリエイトプログラムによる収益を得ています
  • Amazon.co.jp ・本 (325ページ)
  • / ISBN・EAN: 9784798134604

作品紹介・あらすじ

近年のシステムには、十分な機能は当然のこと、急激なアクセス増加や高負荷処理にも耐え、パフォーマンスを維持できることが求められています。しかし、パフォーマンスの考え方は本来、一朝一夕に身につけられるものではなく、開発・運用現場で長年の経験を積んだ末にノウハウと共に得られるものです。本書では、現場で多くの案件を経験してきたベテランのコンサルタントたちが、その経験から得られたノウハウを含め、システムパフォーマンスの知識をわかりやすく解説します。理論でけでなく実例を挙げながら解説するので、実践的な知識を得ることができます。インフラエンジニア/アプリ開発者/システム運用管理者など、システムパフォーマンスとかかわりのあるすべての方へおすすめの一冊です。

感想・レビュー・書評

並び替え
表示形式
表示件数
絞り込み
  • パフォーマンスを理解するためには、内部のアーキテクチャーを理解する必要がある

    ブラックボックス化が進んでも、パフォーマンスだけは、エンジニアが仕組みを理解して、チューニングすべきである

    アルゴリズムの理解:アルゴリズム良し悪しがパフォーマンスを決定する
    計算量でアルゴリズムを評価する
    レスポンスとスループットは違う。レスポンスは応答時間、スループットは仕事量
    主要なアルゴリズム
     配列とループ処理
     リストとループ処理
     探索木
     ハッシュ
     キュー
     スタック
     ソート
     キャッシュ
     ロック

    パフォーマンスの改善は、まず測定することから
     パフォーマンス情報は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刷

  • インフラ寄りのパフォーマンステストとチューニングに関してまとまっている。
    プログラムの代表的なアルゴリズムの解説から始まるが、インフラエンジニアでもアルゴリズムを知っている方が良いという著者の言葉通り一般的なプログラマならほぼ履修済みレベルのアルゴリズム解説と思う。
    次にパフォーマンスを観測するための(主にLinuxでの)コマンドの解説がある。私のインフラの知識は薄いものしか無かったので、この章はどういうときにどのコマンドをまず使ってみれば良いか知れた点で良かった。詳細な見方だったり、オプションの説明までは無いので、必要に応じて調べる必要はある。また、Windows系はパフォーマンスモニタを見ましょう、くらいの数ページしか無かったので、それならわざわざ紙面を割く必要もなかったのでは?と思う。
    その後、パフォーマンステストの計画から実行・評価までのケーススタディが続き、最後は仮想環境における注意事項などが解説されている。
    総じて、インフラエンジニアにとっては初級の内容、そうでない人には初級〜中級者向けの内容であるように感じた。

  • システムパフォーマンスについて知りたく手に取りました。

    プロジェクトによってシステムパフォーマンスについて調査方法に偏りがあり、そんなものなのかなと思っていました。

    この書籍を通して、システムパフォーマンスの課題とアプローチ、その考え方について論が展開されていくので理解を深めることができました。

    また、基本情報技術者試験で概説を学んだときに利用シーンが上手く描けていないところがありましたが、鮮明にイメージすることができるようになりました。

  • 主にサーバ周りのパフォーマンスについて書かれている印象だった。あまり特定の技術や製品については書かれておらず、基本的な考え方なんかを基礎から説明する感じになっている。

    「第6章 仮想化環境におけるパフォーマンス」、「第7章 クラウド環境におけるパフォーマンス」が良かった。これまでのオンプレ環境と比較してどう変わるのか、何が良くなるのかがざっと説明されている。

    システムを見ていると、ある対策を打つためにその理由、有効性、デメリットなどを説明して理解を得る必要がある。自分の中で理解できていても、なかなかうまく説明するのは難しい。こういう言語情報を仕入れておくと、人に伝えるのがやりやすくなる気がする。

  • 主にサーバ観点でのパフォーマンス管理だが、考え方や手法の選択肢を広げるという意味で組込業界でも応用できそう。
    特にパフォーマンス計測データをサマリ形式、スナップショット形式、イベント記録形式に分類して使い分ける考え方は、非常に勉強になった。なんとなくやっていた使い分けを、すっきりと言語化してくれているので、人と議論するときの参考にもできそう。

  • 非常にわかり安い技術書

  • ありそうでなかった本かなと。
    DB関連はよくパフォーマンスの話を扱う本がありますが、全体的に扱っている本は数すくない、しかも和書で。こういう形でまずは全体を把握し、より詳細なパフォーマンスチューニングを学ぶために、詳細なことをまとめた本読む、というのがいいかな、と思います。いい本でした。

  • パフォーマンスに関する基礎的な知識が体系だって整理されており、基本は大変理解しやすい。関連する業務に関わる時に、考え方の整理やリファレンスとして役に立ちそう。後半は割と具体的なので、こちらは多少とも経験がないと辛いかもしれないが。

  • サーバとかネットワークの仮想化によってパフォーマンスを出す。
    もう最近ではパフォーマンスの遅いサイトとか考えられないからね。

  • システムのパフォーマンスについてのテキストとしては、おそらく今まで見てきたものの中でも最高クラスかも。
    パフォーマンスの原因の一番最初にアルゴリズムを問題にするのは、この本ぐらいかもしれない。

全12件中 1 - 10件を表示

著者プロフィール



「2015年 『Java EE 7徹底入門 標準Javaフレームワークによる高信頼性Webシステムの構築』 で使われていた紹介文から引用しています。」

小田圭二の作品

  • 話題の本に出会えて、蔵書管理を手軽にできる!ブクログのアプリ AppStoreからダウンロード GooglePlayで手に入れよう
ツイートする
×