CLOVER🍀

That was when it all began.

システムコンポーネント(CPU、メモリ、ディスク、ネットワーク等)のレイテンシとタイムスケールなどなど

これは、なにをしたくて書いたもの?

CPUサイクルに対してメモリアクセスのレイテンシ比とか、メモリアクセスとディスクアクセスのレイテンシ比がどこかに
まとまっていたな、と時々思いながら、どこにあるか忘れて探すことになるので。

各リソースアクセスへのスケール感を把握するのに役に立つと思うので、メモしておくことにしました。

出典は、「詳解 システム・パフォーマンス」です。

O'Reilly Japan - 詳解 システム・パフォーマンス

ディスクやネットワークに関しても、まとまっていました。

あと、JCacheでもメモリ、ネットワークに関しては参考になりそうな図があったので、こちらもメモとして。

システムコンポーネント(CPU、メモリ、ディスク、ネットワーク等)のレイテンシとタイムスケール

3.3GHzのCPUのレジスタアクセスから、メモリ、ディスク等のおよそのレイテンシと、CPUのレジスタアクセスを1秒とした時に
その比がどれくらいになるか(タイムスケール)を示した表です。

操作 レイテンシ 対比
1 CPU(3.3GHz)サイクル 0.3 nano秒 1秒
レベル1 キャッシュアクセス 0.9 nano秒 3秒
レベル2 キャッシュアクセス 2.8 nano秒 9秒
レベル3 キャッシュアクセス 12.9 nano秒 43秒
メインメモリアクセス(DRAM、CPUから) 120 nano秒 6分(360秒)
SSD I/O(フラッシュメモリ) 50 〜 150 μ秒 2〜6日
回転ディスク I/O 1〜10 m秒 1〜12ヶ月
インターネット: サンフランシスコ - ニューヨーク 40 m秒 4年
インターネット: サンフランシスコ - イギリス 81 m秒 8年
インターネット: サンフランシスコ - オーストラリア 183 m秒 19年
TCPパケット再送 1〜3秒 105〜317年
OS仮想化システムリブート 4秒 423年
SCSIコマンドタイムアウト 30秒 3,000年
ハードウェア仮想化システムリブート 40秒 4,000年
物理システムリブート 5分 32,000年

出典は、「詳解 システム・パフォーマンス」の「2.3.2 タイムスケール/表2-2 システムレイテンシのタイムスケール例」。

O'Reilly Japan - 詳解 システム・パフォーマンス

これとほぼ同じものが、こちらのページで見れますけど。
※微妙に数字が違いますが

f:id:Kazuhira:20210501145509p:plain

Compute Performance – Distance of Data as a Measure of Latency | Formulus Black | In-Memory Storage

このページを追うと、「詳解 システム・パフォーマンス」の著者のページにたどり着きます。

Systems Performance Book

というか、第2版があったんですね。欲しい…。

Systems Performance 2nd Edition Book

Amazon | Systems Performance (Addison-Wesley Professional Computing Series) | Gregg, Brendan | Performance Optimization

ディスクI/Oのレイテンシのタイムスケール

次は、ディスクI/Oのタイムスケールのイメージです。オンディスクキャッシュヒットした時のレイテンシを1秒と
した場合に、それぞれの値がどれくらいになるかも書かれています。

イベント レイテンシ 対比
オンディスクキャッシュヒット < 100 μ秒 1秒
フラッシュメモリからの読み出し 〜100から1,000 μ秒(小規模なI/Oから大規模なI/Oまで) 1〜10秒
回転ディスクからのシーケンシャル読み出し 〜1 m秒 10秒
回転ディスクからのランダム読み出し(7,200rpm) 〜8 m秒 1.3分
回転ディスクからのランダム読み出し(遅く、キューイングされる) > 10 m秒 1.7分
回転ディスクからのランダム読み出し(キューで大量に待っている) > 100 m秒 17分
最悪の条件の仮想ディスクI/O(ハードウェアコントローラー、RAID 5、キューイング、ランダムI/O) 〜1 m秒 2.8時間

出典は、「詳解 システム・パフォーマンス」の「9.3.2 タイムスケール/表9-1 ディスクI/Oレイテンシのタイムスケールのイメージ」。

O'Reilly Japan - 詳解 システム・パフォーマンス

ネットワークのレイテンシのタイムスケール

ネットワークのレイテンシのタイムスケール。ICMPエコー要求からエコー応答を受け取るまで、要するにpingでの
レイテンシとそのスケールを表にしたものです。

localhostでのpingを1秒とした時に、他の値がそれぞれどのくらいになるかの対比もまとめられています。

送信 受信 媒体 レイテンシ 対比
localhost localhost カーネル 0.05 m秒 1秒
ホスト ホスト(同じサブネット) 10GbE 0.2 m秒 4秒
ホスト ホスト(同じサブネット) 1GbE 0.6 m秒 12秒
ホスト ホスト(同じサブネット) WiFi 3 m秒 1分
サンフランシスコ ニューヨーク インターネット 40 m秒 13分
サンフランシスコ イギリス インターネット 81 m秒 27分
サンフランシスコ オーストラリア インターネット 183 m秒 1時間

出典は、「詳解 システム・パフォーマンス」の「10.3.5 レイテンシ/表10-1 ping遅延の例」。

O'Reilly Japan - 詳解 システム・パフォーマンス

キャッシュオブジェクトへのアクセス

上記の情報とは違ってキャッシュに閉じた話ですが、以下の対比についてもメモとして。

f:id:Kazuhira:20210501145340p:plain

https://www.jfokus.se/jfokus16/preso/How-to-Speed-Up-Your-Application-using-JCache.pdf

JCache Using JCache