web-dev-qa-db-ja.com

ディスクI / Oが飽和するとシステムがロックアップする

外部USB3ハードドライブから内部ハードドライブ(またはその逆)に大きなファイルを転送すると、Nautilus経由でも端末経由でも、Ubuntu(Unity)はほぼ完全にロックされます。 alt-tabなどは、ファイル転送の実行中に完了するまでに20秒以上かかります。これは、パッケージのインストール時など、ディスクに対するランダムな読み取り/書き込みが多数ある場合には当てはまりません。

Windowsを実行しているとき、バックグラウンドでファイル転送を実行し、ディスクにアクセスするために何かが必要なときはもっとゆっくりとはいえ、まだできることがありました。 alt-tabでも問題ありませんでした。

Ubuntuは他のすべてのディスクI/Oよりもファイル転送を優先しているようです。 Windowsでは、ファイル転送の優先度が低いようです。つまり、ディスクが飽和状態にある間、システムは応答性を維持できます。

どうすれば修正できますか?ファイルをコピーするとコンピュータが完全に使用できなくなるため、かなり面倒です。この問題は、14.04と15.10の両方で発生します。この問題を防ぐために、ハードドライブをUSB2ポートに接続する必要があり、その結果、転送時間が大幅に長くなります。

8
Degru

私のラップトップでも同じ問題が発生しました。これは、コンピューターの残りの部分に比べてかなり遅いディスクシステムです。

ディスク転送に使用されるスケジューリングアルゴリズムを変更することで、これをさらに改善することができました。デフォルトでは、UbuntuはDeadlineを使用しますが、cfqを使用すると、システムの応答が速くなります。

使用しているスケジューラを確認するには、コマンドを発行します

cat /sys/class/block/sda/queue/scheduler    

1回限りの変更(リブートまで)を行うには、コマンドを発行します

echo cfq | Sudo tee /sys/class/block/sda/queue/scheduler

外付けハードドライブ用に持っているものに変更を加えることが重要であることに注意してください。私のものは通常sdbとしてロードされます。コマンドecho cfq | Sudo tee /sys/class/block/sdb/queue/schedulerを発行します

Grubファイルに次のようなカーネルパラメーターelevator=cfqを追加することにより、コンピューターに接続されているすべてのドライブに対して変更を永続的にします。

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash noautogroup elevator=cfq"
10
Charles Green