記憶領域ごとのレイテンシの目安
背景
以前の記事(コンピュータにおける記憶領域 - 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
ping値の測定方法と速度目安 どれくらいの速度ならOK? | フレッツ光ナビ
第2回 ネットワーク遅延と高速化:教科書には載っていない ネットワークエンジニアの実践技術|gihyo.jp … 技術評論社