ディスクI / OがCPUを占有しないようにするにはどうすればよいですか?

ディスクI / OがCPUを占有しないようにするにはどうすればよいですか?

私はクアッドコアi7プロセッサでDebian Jessieを実行していますが、ハイパースレッディングのために8つのコアが表示されます。ディスク負荷が高いと、htopに示すように、8つのコアすべてに対してio-waitが最大化されます。これによりインターフェイスが非常に遅くなり(私はGnomeを使用します)、I / Oが完了するまでシステムが完全に停止することがあります。

この問題をどのように診断する必要がありますか?これが起こらないようにするには、どの設定を調整する必要がありますか?

単一のハードドライブを使用していますが、SMARTチェックは正常であることがわかりました。

編集:いくつかのことを明確にするために、私は加速I / Oに興味がありません。他の作業中にバックグラウンドで実行するようにしたいと思います。現在SSDにアップグレードすることはオプションではありません。

ベストアンサー1

I / Oパフォーマンスを調整する方法はいくつかあります。

  • ファイルシステムの選択 - 一般的なデータに基づいてファイルシステムを選択します。一部のファイルシステムは多数の小さなファイルを処理し、一部は大容量ファイルを処理し、一部は同時に複数のファイルにアクセス(特に作成)するときはそうではありません。デフラグは回転しているディスクドライブに役立ちます(フラッシュベースのデバイスではそうではありませんが、違いはまだ存在します)。

  • ファイルシステムの調整 - 最新のファイルシステムには、ファイルシステムのパフォーマンスを一方向または別の方向にプッシュするための多くのオプション(作成時およびインストール時)があります。最良の例は日記を書く方法です。

  • DMAの設定 - これは何年も自動的に行われていますが、確認してもまったく問題はありません(hdparm -i友達です)。

特にLinuxの場合(ただし他のカーネルの場合も同様です):

  • THP - Transparent Huge Pagesは、パフォーマンスの低下を引き起こすために使用されます。 IIRC この問題はしばらく前に(少なくともある程度)解決されました。 USBにコピーするか、USBからコピーするのが問題の場合は、おそらくこの方向を見てください。透明な巨大ページを無効にするTHPを無効にする方法の良い出発点になることができます。

  • カーネルI / Oスケジューラはパフォーマンスに大きな影響を与えます。一部の人々はCFQの代わりに締め切りスケジューラを使用することを擁護しています。 CFQはより複雑で、時には過度に考える傾向があるそうです。

この他にも、場合によってはI/Oが多く発生する場合もあります。 USBメモリカードリーダーからハードドライブへ、ハードドライブからUSBフラッシュドライブへのファイルのコピーを開始してWebをブラウズするとき(一部のブラウザは、クラッシュしたときにコンテンツをfsync()回復できるかどうかを確認するために多くのことを行うことができます) 、電子メールのダウンロード、P2Pクライアントの実行、映画の再生を同時に実行すると、物理ディスクとファイルシステムにボトルネックが発生する可能性があります。場合によっては、慎重に構成された(適切なストライプサイズと構成ドライブの数で読み取る)RAID0が問題を軽減するのに役立ちます。

おすすめ記事