同時にアクセスされるファイルの数が増えると、速度の低下が予想されます。ハードディスクドライブは、並行してアクセスされることを好みません。読み取り/書き込みヘッドがシリンダーを切り替える必要があるたびに、数ミリ秒を失います。2つのファイルが同じシリンダーまたは同じトラック上にある場合でも、ローテーションが1つから別のローテーションに移動するまで待機する必要がある場合があります。メガビット/秒でドライブのパフォーマンスを測定する場合は、並列アクセスが増加するにつれて、指数関数的に低下することが予想されます。
fsck
これは役に立ちません。ディレクトリ構造の損傷を修復するだけで、最適化は行いません。
理想的なソリューションは、ソリッドステートストレージへの切り替えです。これには、回転するプラッターの物理的な制限がないためです。しかし、それはおそらく法外な費用です。
次善の策は、並列アクセス用に最適化されたRAIDを使用することです。RAIDは多くの異なるパフォーマンスプロファイルに合わせて構成できるので、特定のRAIDハードウェアとドライバーの設定を理解するには少し時間がかかることに注意してください。
アグレッシブなファイルシステムキャッシングを使用すると、問題を軽減できる場合があります。システムに十分なRAMがある場合、Linuxはすでにこれをかなりうまく行っているはずです。次のようなプログラムを実行しますtop
空きRAMの量を確認します。しかし、最も一般的に使用されるファイルがRAM(または取得する可能性が高いRAM)に収まらない場合、これは実際には役に立ちません。
貧乏人の回避策は、ファイルをいくつかの異なる物理ハードドライブ(同じドライブ上の異なるパーティションだけではない)に分割することです。これは実際には長期的なスケーラブルなソリューションではなく、まともなRAIDよりもコストがかかります。しかし、ドライブが横になっている場合は、すぐに解決できるかもしれません。
ハードディスクドライブを含むソリューションの場合は、回転速度が速く、シーク遅延が少ないことを確認してください。
私はここにハードドライブのパフォーマンスに関するいくつかの一般的な背景を持つ記事を書きました:
UNIXのヒント-ファイルシステム