5.4. ハードドライブ性能の性質

ハードドライブ性能の性質はすでに項4.2.4で説明しています。このセクションでは、その詳細について述べています。システム管理者にとって理解しておく必要のある重要な事項です。少なくともハードドライブの動作方法についての基礎知識がないと、知らずにハードドライブの性能にマイナスに影響する恐れのあるシステム設定に変更してしまう可能性があります。

ハードウェアが I/O 要求に応答、完了するのに要する時間には 2 つの要素があります。

次のセクションではこれらハードドライブの性能について詳細に説明していきます。

5.4.1. 機械的な限界/電気的な限界

ハードドライブは電子機器デバイスのため、その速度や性能はさまざまな限界により異なります。各 I/O 要求はそのドライブの各種コンポーネントが一緒に動作して要求に答えます。これら各コンポーネントには異なる性能の性質があるため、ハードドライブの相対的な性能は各コンポーネントのパフォーマンスの総計によって決定します。

しかし、電気的なコンポーネントは少なくとも機械的なコンポーネントよりもはるかに高速です。したがって、相対的なハードドライブの性能を大きく左右するのは機械的なコンポーネントと言うことになります。

ヒントヒント
 

ハードドライブの性能を向上させる最も効果的な方法はドライブの機械的なアクティビティをできるだけ減らすことです。

一般的なハードドライブの平均アクセスタイムはほぼ 8.5 ミリ秒です。次のセクションではこの値について詳細に説明していき、各コンポーネントがハードドライブの相対的な性能に与える影響を示します。

5.4.1.1. コマンド処理時間

今日、生産されているハードドライブはすべてその動作を制御する複雑な組み込みコンピュータシステムを持っています。このコンピュータシステムは次のような作業を行います。

  • ハードドライブのインターフェース経由で外界と相互に作用し合う

  • 他のハードドライブのコンポーネントの動作を制御し、エラー状態が発生したら回復させる

  • 実際のストレージメディアから読み込まれた生データ及び書き込まれた生データを処理する

ハードドライブに使用されているマイクロプロセッサが比較的パワフルであっても、割り当てられた作業を行うには時間を要します。平均で、0.003 ミリ秒の範囲です。

5.4.1.2. ヘッド — データの読み込み/書き込み

ハードドライブの読み込み/書き込みヘッドはディスクプラッタが"浮きながら"回転しているときだけしか動作しません。ヘッドの下に位置するメディアの動きによってデータの読み込み/書き込みが行なわれるためで、目的セクタを含むメディアがヘッドの真下を通過するために要される時間がまさにヘッドの動作に要されるアクセスタイムの総計を決定する要因です。この平均は 1 トラックに 700 セクタある 10,000 RPM ドライブなら 0.0086 ミリ秒です。

5.4.1.3. 回転時の待ち時間

ハードドライブのディスクプラッタは回転し続けているため、I/O 要求が到達したときにプラッタが目的セクタにアクセスするために正確に正しい位置にうまく回転していることはまずないでしょう。したがって、ドライブの他の部分がそのセクタにアクセスできる状態であっても、目的のセクタが読み込み/書き込みヘッドの真下に位置するまでプラッタが回転するのを待たなければなりません。

一般的に、高性能のハードドライブがディスクプラッタを高速で回転させるのはこのためです。今日、15,000 RPM の速度は最高速パフォーマンスドライブ、5,400 RPM ならエントリレベルのドライブに十分であるとみなされています。10,000 RPM ドライブの場合、約 3 ミリ秒の平均になります。

5.4.1.4. アクセスアームの動き

ハードドライブのなかでアキレス腱に相当するコンポーネントがあるとすればアクセスアームでしょう。アクセスアームはかなりの距離を非常に高速で正確に動かなければなりません。また、アクセスアームの動きは持続的ではなく、瞬時に加速して目的のシリンダへ近付くと通り越さないよう再び瞬時に減速しなければなりません。このため、アクセスアームは丈夫で(激しい動きに耐えられる)しかも軽量(加速/減速のための抵抗が少ない)である必要があります。

相反するニーズに応えていくのは難しく、実際には他のコンポーネントで要される時間と比べるとアクセスアームの移動時間はかなりの時間を要します。したがって、アクセスアームの動きがハードドライブの相対的なパフォーマンスを左右する決定的な要素となります。この平均は 5.5 ミリ秒です。

5.4.2. I/O 負荷とパフォーマンス

ハードドライブの性能を左右する別の要素として、対象となるハードドライブへの I/O 負荷があります。I/O 負荷の固有な点についていくつかあげます。

これらについては次のセクションで詳細に説明しています。

5.4.2.1. 読み込みと書き込み

データ保存に磁気媒体を使用する平均的なハードドライブの場合、データの読み込みと書き込みは同じ時間を要するため、I/O 動作の読み込み数対 I/ O動作の書き込み数はあまり関係がありません[1]。しかし、その他の大容量ストレージ技術は読み込みと書き込みの処理時間量が異なります[2]

これによる影響は、書き込み I/O 動作の方に時間がかかるデバイスは、(例えば)処理できる書き込み I/O 数が読み込み I/O 数に比べ少なくなります。別の観点から言うと、1 つの書き込み I/O はデバイスの I/O 要求処理能力を読み込み I/O より多く消費しています。

5.4.2.2. 複数の読み込み側/書き込み側

複数ソースからの I/O 要求を処理するハードドライブは 単一ソースからの I/O 要求に応じるハードドライブとは作業負荷が異なります。主な理由としては、複数ソースからの I/O 要求は単一ソースからの I/O 要求に比べてハードドライブ上で課される I/O 負荷が高くなる可能性があるからです。

I/O の要求側は I/O が行なわれる前にある程度の処理を行なわれなければならないためです。つまり、要求側は要求が行なわれる前にその性質を判別しなければなりせん。この判別を行なうのに必要な処理には時間がかかるため、1 要求側が生成できる I/O 負荷には上限があります — 上限を上げるにはより高速な CPU にするしかありません。この制限は I/O を行なう前に要求側が人間による入力を必要とする場合にはより顕著になります。

しかし、要求側が複数の場合、より高い I/O 負荷がかかる場合があります。I/O 要求の生成に必要となる処理をサポートするために十分な CPU 処理能力がある限り、I/O の要求側を追加するほど 結果として I/O 負荷が増加します。

しかし I/O 負荷が生じることと関連のある側面が別にあります。これについては次のセクションで説明しています。

5.4.2.3. 読み込み/書き込みの位置

厳密には複数の要求側という環境には限定されませんが、ハードドライブの性能に関するこの点はこうした環境でよく見られる傾向にあります。あるハードドライブからの I/O 要求がデータ用でそのデータが物理的に他のデータの近くにありこのデータも要求されているのどうかということが論点になります。

これが重要である理由はハードドライブの電気機械的な性質を考慮すると明らかになります。いずれのハードドライブにおいても最も遅いコンポーネントとなるのがアクセスアームです。このため、入ってくる I/O 要求によりアクセスされているデータにアクセスアームの移動が不要なら、アクセスされているデータがドライブ全体に分散しているため広範囲なアクセスアームの移動が必要な場合よりもハードドライブはかなり多くの I/O 要求に対応することができます。

ハードドライブの性能仕様書を見るとこれが示されています。こうした仕様書には多くの場合隣接シリンダのシークタイム(アクセスアームが少しだけ動く時間 — となりのシリンダへ移動するだけ)とフルストロークシークタイム(アクセスアームが最初のシリンダから最後のシリンダまで移動する)があります。例として次に高性能ハードドライブのシークタイムをあげます。

隣接シリンダフルストローク
0.68.2

表 5-4. 隣接シリンダのシークタイムとフルストロークシークタイム(ミリ秒)

注記

[1]

実際には全く同じと言うわけではありません。すべてのハードドライブには読み込みの性能を向上させるオンボードキャッシュメモリ量がある程度あります。しかし、データ読み込みのための I/O 要求はすべて最終的には物理的にストレージ媒体からデータを読み込むことで行われる必要があります。つまり、キャッシュは読み込み I/O の処理能力における問題を軽減する場合がありますが、ストレージ媒体からデータを物理的に読み込むために要される時間を完全に無くしてしまうことはできません。

[2]

光学データストレージの実装に使用される技術に物理的な制約があるため、光学ディスクドライブにはこの動作を見せるものがあります