インフラ保守・運用を行う上で日々技術者を苦しませる負荷に関する話題です。ハードディスク(HDD と略)はシステムの中で常に足を引っ張る存在です。
SSD が進化してきてはいても未だこの状況は変わりません。仮に HDD がメモリの性能を抜く日が来るのであれば確実にメモリは不要となるでしょう。
仮にこのような状況(「CPU レジスタ > ハードディスク > メモリ」)が発生するとどのようなことが起こるのでしょうか?
Samsung 技術者の RAID0(24台) のデモ
Samsung 技術者が 24台の SDD を RAID0(ストライピング)にしたデモを公開しています。
[youtube]http://www.youtube.com/watch?v=96dWOEa4Djs[/youtube]
動画をご覧になれば分かりますが、HDD を変えることであらゆるアプリケーションが一瞬で起動するようになってしまいました。コンピュータシステムではこのように見て分かるほどに HDD の性能に引きづられています。
起動後はハードディスクの速度はあまり関係ない
一方で、この RAID0 + SSD + 24台の動画はアプリケーションを一瞬で起動することには成功していますが、その後はどうなるのでしょうか?
広く知られている OS では OS 起動直後、アプリケーションはアプリケーションとして認識されておらず OS 上はただのファイルの一つに過ぎません。このアプリケーションを起動した時ファイル(HDD)から一旦メモリに処理を全て読み込みます。
その為、例えば UNIX 系 OS ではこの時点でアプリケーションを削除しても動き続けることが可能だったりします。この状態でアプリケーションをリネームし、バージョンアップした上で再起動するようなデプロイ方法も行われています。
メモリに読み込まれたアプリケーションはこの後もメモリ上で動き続け、アプリケーション内でファイル入出力を行わない限りはもはや(ほぼ)HDD を必要としません。
メモリ内で動くことが可能である為、速度はこの時点で十分高速です。その為、例え HDD の性能を異常に高めても動いた後の性能には影響を与えないでしょう。
ストレージベンダやファイルシステム開発者等非常に多くの方々がこの HDD への性能向上(実際はいかに向上したように見せかけるか)に奮闘しています。私達も日々これらのことを意識してシステムを構築してゆくことが重要でしょう。