tanke25616429のアウトプット

IT技術の基本を勉強したことをアウトプットします。Linux、Kubernetes、クラウド中心です。百番煎じくらいだけど誰かの役に立てばそれはそれでうれしい。

記憶領域ごとのレイテンシの目安

背景

以前の記事(コンピュータにおける記憶領域 - Knのアウトプット)で、コンピュータでの各記憶領域の入出力の速さを比較した。実際のスケール感をイメージしておくためメモする。

レイテンシのスケール感比較

レイテンシの目安を示したサイトがあったので(計算機の代表的なレイテンシとスケール感Latency Numbers Every Programmer Should Know)、それを参考にまとめる*1。両サイトで数値にずれがある場合*2、両サイトの最大値と最小値を採用しその間に収まるものとする。カッコ内の何倍、というのはかなり端折った値にしている(規模をつかむのが重要なため)。

  • CPUサイクル(基準):0.3ns*3
  • キャッシュ:1ns~10数ns(基準の3倍~5倍程度、数クロック程度)*4
  • メモリ:100ns~120ns(基準の30倍~40倍、キャッシュアクセスの10~100倍)
  • SSD:16μs~150μs(基準の5×104倍~5×105倍、メモリアクセスの100倍~1000倍)
  • HDD:1ms~10ms(基準の3×106~3×107倍、SSDの100倍~1000倍)

いろいろなケースをすごく乱暴に省略すると、CPUサイクルは1ns未満、キャッシュはその数倍、メモリはその100倍、SSDはその100倍、HDDはその100倍、というのが覚えやすい。

その他興味深い数値

Latency Numbers Every Programmer Should Know によると同一データのラウンドトリップタイムは500μs程度。

一方、第2回 ネットワーク遅延と高速化:教科書には載っていない ネットワークエンジニアの実践技術|gihyo.jp … 技術評論社によれば、東京~大阪でのネットワーク遅延が20ms程度が目安なので、当たり前だが同一マシン内のデータアクセスや同一データセンタ内のデータアクセスに比べれば低速である。ping値の測定方法と速度目安 どれくらいの速度ならOK? | フレッツ光ナビによると、オンラインゲームをするケースでは20msは超高速ではないが高速といった体感で、50msを超えると人間に遅延が体感されるらしい。

参考にしたもの

計算機の代表的なレイテンシとスケール感 - ゆううきメモ

Numbers Every Programmer Should Know By Year

NetApp HCI -番外編- NetApp HCIの圧倒的ストレージパフォーマンスっ!!|技術ブログ|C&S ENGINEER VOICE

www.idcf.jp

e-words.jp

ping値の測定方法と速度目安 どれくらいの速度ならOK? | フレッツ光ナビ

第2回 ネットワーク遅延と高速化:教科書には載っていない ネットワークエンジニアの実践技術|gihyo.jp … 技術評論社

*1:IOPSやスループットの指標は本記事の対象外とする

*2:おそらく、実験条件の違いや、ハードウェアそのもの速度の進歩があるため、計測した時期によって違う。

*3:クロック周波数がだいたいGHz(=109 Hz)オーダーなのでクロック周期はその逆数で10-9でnsオーダーになる。

*4:当然L1<L2<L3だが、いずれにしてもこの範囲に収まる。