Help us understand the problem. What is going on with this article?

プログラマが知っておくべき、メモリ/ディスク/ネットワークの速度まとめ

More than 3 years have passed since last update.

2016年で日本で流通しているものを基準とした、大体の速度です。
桁が大事なので上の桁は1に揃えました。単位はビットではなくバイトです。

(SSDのシーケンシャルだけ400MB/sぐらいだったのでちょっと心苦しかったですが、速度を切り上げるとその速度を前提とした設計をされると問題が起こるので低い側に倒しています。)

名前 読込速度 読込速度(MB/s)
メモリ 10GB/s 10000MB/s
有線ネットワーク 1GB/s 1000MB/s
SSD(シーケンシャルアクセス) 100MB/s 100MB/s
HDD(シーケンシャルアクセス) 100MB/s 100MB/s
SSD(ランダムアクセス) 10MB/s 10MB/s
HDD(ランダムアクセス) 1MB/s 1MB/s
4Gネットワーク 1MB-10MB/s 1MB-10MB/s
3Gネットワーク 100kB-1MB/s 0.1MB-1MB/s

注: 無線ネットワークは干渉などによりこの数値より遅くなる状況も十分ありえます。

ポイント

  • メモリからの読み込みとディスクからの読み込みはランダムアクセスで1000倍程度違う
    • とは言え、最近はディスクも結構速い
  • きちんと繋がれた有線ネットワークからの読み込みは、ディスクより速い
    • つまり、ディスクから読むより、同じデータセンターのマシンのメモリから読んだほうが速い
  • モバイルネットワークだと100キロバイトのデータでも1秒以上かかることがある
  • メモリからの読込速度の遅さは、CPUのクロック数も10G/s程度なのと、本来はL1/L2キャッシュなどがあることを考えると通常意識しなくて良い

何故この参考値をまとめたか

プログラミングをする際、どのくらいの時間でどのくらいのサイズ感の処理が出来るのかを考えられることが、ある一定規模以上のサービスを開発するときは必須条件になってくると思います。
なにより、知ってるだけで1つ上のレベルの議論ができるので超お得だと思います。

具体的には、

  • そのプログラムは秒間何人のユーザーをさばけるのか
  • 何台のサーバーを用意したら良いのか
  • 画像のサイズはどのくらいまでが適切か

などを見積もるときに、必要になってくると思います。
最終的には計測したり、他社と比較したりして決定するにしても、作る時の概算で大きくはずさないことも大事なので。

速度の参考値の出典

注意

ネットワーク周りはbyteではなくbitの単位系になっており、8倍の差があります。ここの表では、桁の概算を表しているので、例えば10Gbitイーサネットの速度は1GB/sと表しています。

お願い

こういう値も載せたら?この値おかしくない?というものがありましたら、是非コメントか編集リクエストで教えて下さい。

ちなみに

こういうサイトもあります。よく出来ているけど意外とわかりにくい気もw

awakia
検索とか推薦とかやってきたエンジニア。早稲田の山名研出身。大学院の頃、論文を書こうとしない僕を見かねた教授に、北京のMSRAに追放されるが3ヶ月後無事帰還。 大学を卒業後、エンジニアのブラックホールとの別名を持つGoogleに吸収されそうになるが1年2ヶ月後無事生還。 現在は、Wantedly(https://www.wantedly.com/ )の4番目のエージェントとして救出活動に専念。
http://awakia-n.hatenablog.com/
wantedly
「シゴトでココロオドル」ためのビジネスSNS「Wantedly」の開発・運営をしています。
https://wantedlyinc.com/ja/presentations
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした