Linuxの場合、物理ディスクに対するアクセス速度の基本的な情報であれば、hdparmツールに-Tおよび-tオプションを付けて実行することで取得できる。このうち-Tオプションは、Linuxのディスクキャッシュを利用することで高速アクセス可能なディスクからどれだけの情報量をシステムが読み込めるかの概要を得る際に使用する。同様に-tオプションもキャッシュを介したディスクからの読み込みを測定させるものだが、こちらは事前キャッシュを行わない場合の結果が得られる。つまり-tオプションを指定することで、ディスク上にシーケンシャル(連続的)に格納された情報に対する読み出し速度についての指標が得られるのである。
しかしながらこのhdparmツールによって得られる情報は、実際のパフォーマンスに則した最適な指標という訳ではない。これはかなりの低レベルで動作するツールであるため、ディスクパーティションの1つに置かれたファイルシステムに関しては大幅に異なる結果を示す場合があるのだ。またシーケンシャルアクセスとランダムアクセスとでも得られる結果は大きく異なってくる。その他の要望としては、RAID化したディスク群の上に置かれたファイルシステムに対するベンチマークも測定したいところである。
特定のディスクIOにおける作業負荷のベンチマーク用に作られたものとしては、本稿で解説する fio というツールが存在する。このツールが実施するのは、多数存在する同期/非同期IO APIの1つを用いたIOリクエストの送信をするという処理だが、単一のAPI呼び出しに付随して複数のIOリクエストを行うタイプのAPIを使用させることもできる。fioの使用するファイルのサイズについてはユーザによる調整が可能で、こうしたファイルIOのオフセットおよびIOリクエスト送信間の遅延の大きさ、あるいは個々のIOリクエスト間にファイルシステムの同期呼び出しを行うかなども指定できるようになっている。例えば同期呼び出しを実行させた場合、メモリ上のキャッシュ情報をディスク側に書き込み直す処理をオペレーティングシステムが行う関係上、かなりの量の遅延がもたらされるはずである。つまりfioには、こうしたIOパターンを詳細に指定するためのオプション群が用意されており、各自のディスクサブシステムがこれらのタスクを完了させるまでの所要時間を取得できるようになっているのだ。
fioの入手法に関しては、Fedora 8用の標準リポジトリにてパッケージ化されており、openSUSEの場合はopenSUSE Build Serviceから取得できる。ただしDebianベースのディストリビューションを使用している場合は、「make; sudo make install」を用いてソースコードからコンパイルしなければならない。
