--- title: 'Systems Performance: Enterprise and the Cloud を読む' author: kazu634 date: 2014-10-31T15:04:05Z author: - kazu634 categories: - Labs - Infra tags: - book --- Systems Performance: Enterprise and the Cloudを読んでいます。システム管理の分野で顕著な成果として2013年度のLISA Awardというのを受賞した書籍らしいのですが、これがまた面白い。たぶん自分が何を説明しているのかを正確に理解している人が、わかりやすく伝える努力を惜しまずに書くとこんな書籍になるのだと思う。これは最後まで読まねば。 著者の人のスライドを発見したので貼り付け:
Linux Performance Tools 2014 from Brendan Gregg
とりあえず気になった部分をまとめていきます。随時更新。 更新履歴: * 2014/10/31: Introductionの途中までメモ * 2014/11/01: Methodologyの途中までメモ * * *
Systems Performance: Enterprise and the Cloud
Prentice Hall (2013-10-07)
* * * ## Introduction 冒頭、ドナルド・ラムズフェルドの発言を引用して始まります: > 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”、「つまり知らないことすら認識していないこと」だと述べていく。この出だしだけで、この書籍が巧みに読者の興味をくすぐっている事がわかるかと思う。 ### Performance is challenging パフォーマンスに関する問題が難しい理由を3つ挙げて解説している。 #### Performance is subjective パフォーマンスに関する問題は主観的なものであり、明確なゴールを設定せずには客観的にはなりえない。たとえば、平均レスポンスタイムを設定したり、一定の割合のリクエストが特定のレイテンシの範囲におさまるなどというように。 #### Systems are complex 複雑なパフォーマンス上の問題を解決するためには、ホリスティックなアプローチが必要となることが多い。システム全体、つまりシステム内部と外部間の接続を調査する必要がある。こうした調査を実施するためには、幅広いスキルが必要になる。必要とされるスキルの範囲が広く、一人のエンジニアがこうしたスキルをすべて持つことはあまり無い。また、システム全体を調査する必要があるために、パフォーマンス上の問題解決は多種多様であり、困難な問題となる。 #### There can be multiple performance issue パフォーマンス上の問題はいたるところにあり、実際にやるべきタスクはボトルネックになっている問題を特定することだ。 ## Chapter 2: Methodology 冒頭、シャーロック・ホームズからの引用で始まりました: > 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 データーを入手する前に理屈付けるのは大きな誤りだ。気付かないうちに、事実に合わせて陸続けるのではなくて、理屈に合わせて事実をねじ曲げることになるから……というこれまた的確な引用といえるかと。 ### Termiology #### IOPS Input/Output operations per second is a measure of the rate of data transfer operation. #### Throughput 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). #### Responsetime 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. #### Latency A measure of time an operation spends waiting to be serviced. #### Utilization 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. #### Saturation The degree to which a resource has queued work it cannot service. #### Bottleneck 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. #### workload The input to the system or the load applied is the workload. ### CPU視点でみた場合の各パーツの処理に要する時間とわかりやすい卑近な例に例えたら こんな感じの表が掲載されていました: CPU_cycletime_and_its_scaled_time CPUからするとSSDすらかなり遅いんですね。。。