ディスクは、コンピュータシステムで使用されるデータと命令を格納します。ディスクアクセス動作と端末の動作を調べることにより、システムがどの程度効率的に、ディスク上のデータにアクセスしているかが検査できます。ディスク動作に関する統計情報を表示する iostat コマンドと sar コマンドについては、第 26 章「性能の監視手順」を参照してください。ディスク容量の管理と割り当て、およびディスクをスライスに分割する方法については、『Solaris のシステム管理 (第 1 巻)』の「ディスク管理の概要」を参照してください。
CPU が入出力の完了を待っている場合は、ディスクが低速化していることになります。ディスクの低速化を防ぐには、次のような方法があります。
ファイルシステムがいっぱいにならないように、ディスク容量の 10% を常に空けておいてください。ディスクがいっぱいになった場合は、ディスクのフラグメンテーションを防ぐために、ファイルシステムのバックアップをとって復元します。ディスクのフラグメンテーションを解消するソフトウェアの購入をご検討ください。
ディスク動作を最小に抑えるようにファイルシステムを編成してください。2 台のディスクを使用する場合は、ファイルシステムを分散して負荷バランスを調整します。Online: DiskSuiteTM 製品を使用すると、ディスクの使用効率を高めることができます。
メモリーを増やしてください。メモリーを増やすと、スワッピングとページングによるトラフィックが減少し、拡張バッファープールを使用できます (ディスクへのアクセスが必要なユーザーレベルでの読み書き回数が減少します)。
ディスクを追加して、ディスク間で最も稼働率の高いファイルシステムのバランスを調整してください。
直接入出力は、バルク入出力操作を向上させます。バルク入出力操作とは、大量のバッファサイズを使用して、大きなファイル (物理メモリーより大きなファイル) を転送することです。
バルク入出力操作の例は、衛星から転送されるデータのダウンロードです。これは、大量のデータをファイルに書き込みます。直接入出力データは、オペレーティングシステムのページキャッシング機構のオーバーヘッドを使用しないで、メモリーから読み取られたり、書き込まれたりします。
直接入出力の起動は、場合によっては制限があります。入出力が要求されたファイルがすでに他のアプリケーションによってマップされていた場合、そのページは直接入出力操作が始まる前に、メモリーからフラッシュされなければなりません。
詳細は、directio(3C) のマニュアルページを参照してください。
mount コマンドに forcedirectio オプションを指定しても、ファイルシステムについて直接入出力を使用できます。ファイルシステムが大量の順次データを転送する場合のみ、直接入出力の効果が性能に現れます。
このオプションでファイルシステムをマウントすると、データはユーザーのアドレス空間とディスク間を直接転送されます。ファイルシステムに対して直接入出力を強制的に使用できない場合、ユーザーのアドレス空間とディスクとの間で転送されるデータは、まずカーネルアドレス空間に入れられます。
UFS ファイルシステムにおけるデフォルトの動作は、非強制直接入出力です。詳細は、mount_ufs(1M) のマニュアルページを参照してください。