USBデバイスからファイルをコピーするとパフォーマンスが低下する

USBデバイスからファイルをコピーするとパフォーマンスが低下する

USBデバイス(カメラ、ハードドライブ、メモリカード)からファイルをコピーすると、システムが非常に遅くなります。たとえば、ウィンドウを閉じたいときにマウスを動かすと、マウスカーソルが移動するのに約2秒以上かかります。最後に、x上にカーソルを移動してクリックすると、10秒以上何も起こりません。すべてのデスクトップ効果を無効にしてこの操作を試しましたが、問題は解決しません。

ソフトウェア:Linux Mint 9 KDEハードウェア:

  • ASUS SLIマザーボード
  • Nvidia 6600 GPU
  • 2GB RAM
  • 2GBスワップ
  • AMDアスロックスX2 @ 3800+

私にとって、このハードウェアはUSBを使用してファイルをコピーするまでこのソフトウェアを実行するのに問題がないはずです。この問題に対する解決策をどこから見つけるべきですか?グラフィックドライバが問題の一部かもしれないと思いますが、わかりません。

答え1

一つあるようです。Linuxメモリ管理の大きなページの問題。これはほとんど起こりませんが、あなたが観察したように聞こえます。

理由

これはこの記事で何が起こったのかを簡単に説明します。

運が悪い場合は、メモリアクセスの実行中にプロセスが中断されます。これは、透明な巨大ページがアクティブになると、メモリアクセスが同期圧縮(メインメモリの最適化)をトリガできるためです。同期は、圧縮前にメモリアクセスが完了しないことを意味します。これはそれ自体は悪いことではありません。ただし、書き込み保存(たとえば、USBにバッファリングされたデータ書き込み)が同時に発生した場合、圧縮は書き込み保存が完了するのを待たない可能性があります。

したがって、すべてのプロセスは、遅いデバイスがバッファリングされたデータの書き込みを完了するのを待つことができます。

治癒法

OPと同様に、メインメモリをアップグレードすると、問題の発生を遅らせるのに役立ちます。しかし、これがオプションだと思わない人には、2つの確実な解決策があります。どちらもカーネルの再コンパイルを含みます。

答え2

これは私の質問と似ています(答えが問題を指摘した場合)。

https://stackoverflow.com/questions/10105203/how-can-i-limit-the-cache-used-by-copying-so-there-is-still-memory-available-for

しかし、理論はまったく異なり、私が使った解決策はあなたの解決策とは関係ありませんが、うまく機能します。

私はrsyncを使っているので、--drop-cacheオプションを使うだけです。 (これを行うと、副作用でコピー速度が遅くなります。)

答え3

実際に動作する唯一の方法は次のとおりです。 Gnome、NautilusのUSBへのファイルコピーは100%またはほぼ100%近くで停止します。

高度なユーザートリックを試すには、/proc/sys/vm/dirty_bytesを15728640(15MB)などの値に設定して、Linuxで使用されるバッファサイズを減らすことができます。これは、アプリケーションが事前に15MB以上の実際の進行状況を取得できないことを意味します。

1つの副作用は、この設定がコンピュータのデータ書き込みスループットを低下させる可能性があることです。しかし、一般に、大量のデータを書き込むよりも、大量のデータを書き込むと、プログラムが長時間実行されることがわかります。これは役に立ちます。データについて混乱しているとき。プログラムは作業を終えたように見えますが、カーネルが実際の作業を実行するとシステムが著しく遅れます。 dirty_bytes を非常に小さい値に設定すると、使用可能なメモリが不足したり、突然大量のデータを書き込むプログラムを実行したときにシステムが応答しなくなるのを防ぐのに役立ちます。

しかし、あまりにも小さく設定しないでください!カーネルが1/4秒以内にバッファを通常のハードドライブにフラッシュできるというおおよその推定値として15MBを使用しました。私のシステムが「遅い」感じを受けないようにします。

関連情報