はじめに
本記事は、Brendan Gregg著 - 詳細システムパフォーマンスで解説されている**"システムレイテンシのタイムスケール"の表を絵に描いてみて**います。ただそれだけです。
以下、書籍より引用 「P.19 第2章 メソトロジ - 2.3. タイムスケール より」
時間は数値として比較できるが、時間についての直観、異なるソースのレイテンシの予測ができれば役に立つ。システムコンポーネントが動作するタイムスケール(時間の割合)には非常に大きな差があるので、単に差がどれくらいかがわかっても把握しにくい場合がある。表2-2は、3.3GHzCPUのレジスタアクセスから順に例天使の例を示したものである。私たちが相手にするタイムスケールの差の大きさを具体的につかむために、この表は、レジスタアクセスがちょうど1秒かかる架空のシステム(実際には、0.3n 秒、すなわち約 30億分の1秒しかかからない)で、それぞれのオペレーションに平均でどれくらいの時間がかかるかを示している。
経緯
インフラエンジニアとしてほぼ3年が経ちました。まだまだ基礎力が足りないと思い立ち、年末年始でゆるーく勉強していました。
(著者は入社してほとんどクラウドしか触れていなくて、低いレイヤをまるっきりブラックボックスにしてきてしまったクラウドゆとりです。。)
詳細システムパフォーマンスが体系的に学びやすそうだったので(ただただ)読み進めていたのですが、このお休みでなにもアウトプットがないのは寂しかったので連休最後で1記事投稿しました。
書籍では表で記載があったのですが、インフラエンジニアとしてすごく大切な感覚だと思いますので絵に表すことで深く刻みつけます。
「メインメモリへのアクセスが6分だとすると、回転ディスクへのアクセスは数ヶ月かかる」って感覚、ちゃんと持ち合わせていなかったなーと、自戒の念を込めています。
システムレイテンシのタイムスケールの例
さっそく表を絵にしています
補足の図
書籍ではCPUサイクルのタイムスケールが極めて小さいということを補足しているので、それも絵で表現します
(そもそも光の速度ってめちゃくちゃ速いですね。1秒で地球を7周半)
CPUってすげーな。
ご覧のようにCPUサイクルのタイムスケールはきわめて小さい。あなたの目からこのページまでは0.5mほどだが、光がこの教理を移動するためにかかる時間は約1.7n 秒である。同じ時間に、現代のCPUは5つのCPUサイクルを実行し、複数の命令を処理しているのである
※ 描いた絵は、PCから人間の目で表現しています(書籍では本のページから人間の目でしたが)
おまけ: ping遅延
ネットワークの章でも対比の表があったためこちらも絵にしてみました。
「サンフランシスコからニューヨークのping遅延が13分だとすると、オーストラリアへのping遅延は1時間になる」って感覚は全然持てていなかったので勉強になりました。
「P.534 第10章 ネットワーク - 10.3.5 レイテンシ より」
表 10-1 は、ping遅延の例をまとめたものである。桁数の違いがわかりやすくなるように、localhostへのping遅延を仮に1秒としたときにそれぞれの値がどれくらいになるかを「対比」欄にまとめてある。
まとめ
レイテンシってタイムスケールが驚くほど違うので、大雑把でもちゃんと覚えておかないといけないですね。対比を絵で描くことでこの感覚がちゃんと身についた気がします。