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

エ デ ミテ ワカル システム パフォーマンス ノ シクミ

絵で見てわかるシステムパフォーマンスの仕組みの表紙
アプリケーション
著者:
小田圭二 / 榑松谷仁(オダ, ケイジ / クレマツ, タニヒト)
出版社:
翔泳社
出版日:
2014年06月
ISBN:
9784798134604
在庫:
在庫あり
4(8 件 / 楽天ブックス)

なぜ注目されているか

総合580位 ↑ 6 ランクアップ 言及 3 件
言及数
686位

書籍紹介

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

技書の森解説

「遅い」と言われたシステムのどこが詰まっているのかを、勘ではなく測定と理屈で突き止める。『絵で見てわかるシステムパフォーマンスの仕組み』 (小田圭二 / 岡田憲昌 / 榑松谷仁 / 平山毅 著、翔泳社、2014 年 6 月刊) は、その考え方を書名のとおり絵を軸に解説した一冊で、版元は「開発・運用の現場で多くの案件を経験してきたベテランのコンサルタントたちが、その経験から得られたノウハウとともに、システムパフォーマンスの基礎をわかりやすく解説する」本と紹介しています。版元が挙げる対象読者はインフラエンジニア、アプリ開発者、システム運用管理者など、システムパフォーマンスとかかわりのある人全般で、特定の職種に絞った本ではありません。

全 7 章と上級編の構成、測定から分析 / チューニング / テストへ

構成は全 7 章と、目次の末尾に並ぶ【上級編】と題した項目群です。第 1 章はパフォーマンスの基礎的な考え方で、アルゴリズムのメリット / デメリットと学習法、レスポンスとスループットの違いといった、性能を語るための土台になる概念を扱います。第 2 章はパフォーマンス分析の基本で、測定から始めるという原則、必要なパフォーマンス情報、分析で重要な理論、OS のコマンドを押さえます。第 3 章は実システムのパフォーマンス分析として Web/AP サーバと Java/C アプリ、DB サーバ、ストレージ、ネットワークの各層の分析と原因調査を、第 4 章はパフォーマンスチューニングの定石、現場で用いられるテクニック、実際の業務で遭遇するパフォーマンス、チューニングの例を扱います。第 5 章はパフォーマンステストで、よくある失敗を 9 つのアンチパターンとして整理し、テストの種類とプロジェクト工程で考えるテストの位置づけを解説します。第 6 章は仮想化環境、第 7 章はクラウド環境におけるパフォーマンスで、上級編にはロックの仕組みの実装や、待ち行列の先頭で何が起きているのかといった掘り下げの話題が並びます。

レスポンスとスループット、ボトルネックを見つける技術背景

性能の議論で最初につまずくのは、レスポンス (1 つの処理にかかる時間) とスループット (単位時間に処理できる量) を混同することです。両者は独立ではなく、資源の使用率が上がるほど待ち時間が非線形に伸びるという待ち行列の性質で結びついており、CPU、メモリ、ストレージ、ネットワーク のうち最初に飽和した資源が系全体の限界を決めます。これがボトルネックで、その資源を特定せずに他の部分を増強しても効果は出ません。したがって手順は測定が先です。OS のコマンドで得られる使用率や待ち時間、キューの長さを層ごとに並べ、どこで時間が消えているかを追い、原因の層を絞ってからチューニングの手を打ち、変更の効果をテストで確かめます。本書の章立てが基礎概念、測定と分析、層別の実システム分析、チューニング、パフォーマンステストという順に進むのは、この手順に沿った配置です。資源の流れと待ちの発生箇所は文章だけでは追いにくく、どこで待っているかを目で確認できる絵に向いた題材です。

2014 年 6 月時点の環境と、仮想化 / クラウド章の読み方

刊行は 2014 年 6 月で、第 6 章と第 7 章が前提とする仮想化 / クラウド環境はその時点のものです。仮想化の章はサーバ仮想化の主な技術としてオーバコミットを取り上げ、仮想化環境のパフォーマンスの考え方と分析方法を扱います。一般に、物理資源を超えて仮想マシンに割り当てる構成では、ゲスト OS 側の計測値だけでは資源の競合が見えないため、分析の前提を変える必要があります。クラウドの章はクラウドとオンプレミスの違い、クラウド環境の内部構造と最適なアプリケーション方式、開発フェーズと運用フェーズそれぞれのアプローチを扱い、資源が抽象化された環境での性能を開発と運用の両フェーズから見ています。2014 年以降、個々のクラウドサービスが提供する計測や自動スケールの機能は大きく変わっているので、その部分は各サービスの公式ドキュメントで補い、本書からは資源が抽象化されても待ち行列とボトルネックの原理は変わらないという見方を受け取るのが適切な読み方です。変化の速い分野の本の賞味期限をどう見るかは、インフラ・クラウド本の選び方 でも整理しています。

インフラエンジニアと開発者、性能問題で元が取れる人と向かない人

買って元が取れるのは、性能問題の切り分けを任されたインフラエンジニアや運用管理者、自分のアプリケーションが遅い原因を DB やストレージの層まで含めて追えるようになりたいアプリ開発者、そして 負荷テスト を計画する立場で、失敗のアンチパターンを先に知っておきたい人です。版元の対象読者にインフラとアプリの両方が挙がっているとおり、どちらの側の人にも相手側の層を理解する材料になります。一方で、目次に製品別の章はなく、特定の OS や DBMS、クラウドサービスのパラメータ一覧やコマンドリファレンスを求める人には向きません。刊行後に登場した個別サービスの計測機能を知りたい人も、本書は考え方の土台として使い、具体的な操作は別の資料に求める前提が必要です。遅いという苦情を前に、測るべき値と見るべき層を自分で決められるようになりたい人にとって、基礎から測定、チューニング、テスト、仮想化とクラウドまでを一冊で通した本書は、投じた時間の回収が早い選択です。

言及した記事 (3 件)

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: