Systems Performance: Enterprise and the Cloud を読む

Systems Performance: Enterprise and the Cloudを読んでいます。システム管理の分野で顕著な成果として2013年度のLISA Awardというのを受賞した書籍らしいのですが、これがまた面白い。たぶん自分が何を説明しているのかを正確に理解している人が、わかりやすく伝える努力を惜しまずに書くとこんな書籍になるのだと思う。これは最後まで読まねば。

著者の人のスライドを発見したので貼り付け:

とりあえず気になった部分をまとめていきます。随時更新。

更新履歴:

  • 2014/10/31: Introductionの途中までメモ
  • 2014/11/01: Methodologyの途中までメモ


冒頭、ドナルド・ラムズフェルドの発言を引用して始まります:

There are known knowns; there are thing we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know. But there are also unknown unknowns — there are things we do not know we do not know.

— U.S. Secretary of Defense Donald Rumsfeld, Feb 12, 2002

この書籍で扱う Performance は、”unknown unknowns”、「つまり知らないことすら認識していないこと」だと述べていく。この出だしだけで、この書籍が巧みに読者の興味をくすぐっている事がわかるかと思う。

パフォーマンスに関する問題が難しい理由を3つ挙げて解説している。

パフォーマンスに関する問題は主観的なものであり、明確なゴールを設定せずには客観的にはなりえない。たとえば、平均レスポンスタイムを設定したり、一定の割合のリクエストが特定のレイテンシの範囲におさまるなどというように。

複雑なパフォーマンス上の問題を解決するためには、ホリスティックなアプローチが必要となることが多い。システム全体、つまりシステム内部と外部間の接続を調査する必要がある。こうした調査を実施するためには、幅広いスキルが必要になる。必要とされるスキルの範囲が広く、一人のエンジニアがこうしたスキルをすべて持つことはあまり無い。また、システム全体を調査する必要があるために、パフォーマンス上の問題解決は多種多様であり、困難な問題となる。

パフォーマンス上の問題はいたるところにあり、実際にやるべきタスクはボトルネックになっている問題を特定することだ。

冒頭、シャーロック・ホームズからの引用で始まりました:

It is capital mistake to theorize before one has data. Insensibly one begins to twist facts to suit theories, instead of theories to suit facts.

— Sherlock Holmes in “A Scandal in Bohemia” by Sir Arthur Conan Doyle

データーを入手する前に理屈付けるのは大きな誤りだ。気付かないうちに、事実に合わせて陸続けるのではなくて、理屈に合わせて事実をねじ曲げることになるから……というこれまた的確な引用といえるかと。

Input/Output operations per second is a measure of the rate of data transfer operation.

The rate of work performed. Especially in communications, the term is used to refer to the data rate (byte per second or bit per second).

The time for an operation to complete. This includes any time spent waiting and time spent being serviced (service time), including the time to transfer the result.

A measure of time an operation spends waiting to be serviced.

For resources that service requests, utilization is a measure of how busy a resource is, based on how much time in a given interval it was actively performing work.

The degree to which a resource has queued work it cannot service.

In system performance, a bottleneck is a resource that limits the performance of the system. Identifying and removing systematic bottlenecks is a key activity of system performance.

The input to the system or the load applied is the workload.

こんな感じの表が掲載されていました:

CPU_cycletime_and_its_scaled_time

CPUからするとSSDすらかなり遅いんですね。。。