多数のファイルをUSBドライブにコピーするとデスクトップがロックされるのはなぜですか?

多数のファイルをUSBドライブにコピーするとデスクトップがロックされるのはなぜですか?

私のデスクトップは通常、負荷が重い場合でも非常に反応します。ただし、USBドライブにファイルをコピーすると、一定時間が経過すると常に動作が停止します。 「ロック」とは次のとおりです。

  • あるウィンドウから別のウィンドウにフォーカスを移動するのに10〜20秒かかることがあります。
  • デスクトップの切り替えには10〜20秒かかることがあります。
  • 動画は更新されなくなりました。 (YouTubeでは音声が再生され続け、動画のみが停止します。)

この場合、システム負荷は特に高くありません。時にはxosviewに白がたくさん見えます。これはカーネルがどこかで使用されていることを示します。

一見すると、ファイルをUSBドライブにコピーすると、何らかの方法でcompizに邪魔になりそうですが、どの接続があるのか​​想像できません。

出力は次のとおりですhtop

一時停止直後にhtopから出力

iostat -c -z -t -x -d 12分間中断された間の出力は次のとおりです。

19.07.2012 20:38:22
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1,27    0,00    0,38   37,52    0,00   60,84

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdg               0,00     2,00    0,00  216,00     0,00 109248,00  1011,56   247,75  677,69    0,00  677,69   4,63 100,00

ご覧のとおり、外付けハードドライブのみが有効になっています。完全なログは次のとおりです。http://pastebin.com/YNWTAkh4

一時停止時間は20:38:01、終了時間は20:40:19です。

ソフトウェア情報:

  • SUSE 12.1を開く
  • KDE4.7.x
  • ファイルシステム:内蔵ハードドライブのreiserfsとbtrfs、USBドライブのbtrfs

答え1

私の最初の推測は、btrfsファイルシステムのI / Oプロセスが時々引き継がれることです。しかし、Xがロックされている理由は説明されていません。

割り込みを見ると次のようになります。

# cat /proc/interrupts 
           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       
  0:        179          0          0          0          0          0          0          0  IR-IO-APIC-edge      timer
  1:          6          0          0          0          0          0          0          0  IR-IO-APIC-edge      i8042
  8:          1          0          0          0          0          0          0          0  IR-IO-APIC-edge      rtc0
  9:          0          0          0          0          0          0          0          0  IR-IO-APIC-fasteoi   acpi
 12:         10          0          0          0          0          0          0          0  IR-IO-APIC-edge      i8042
 16:    3306384          0          0          0          0          0          0          0  IR-IO-APIC-fasteoi   ehci_hcd:usb1, nvidia, mei, eth1

まあ。 USBドライバはグラフィックカードと同じIRQを使用し、チェーンの最初のドライバです。ファイルシステムは高価な作業を実行するため、動作が停止するとグラフィックカードが機能しなくなります(ネットワークも同様です)。

答え2

同様の問題を見たことがあります。SUSEを開く12.1のlinux-3.1カーネルでは、透明なhugepagesを無効にすることが役に立つことがわかりました。

echo never > /sys/kernel/mm/transparent_hugepage/enabled

根本的な問題は、アプリケーションが4MB以上を割り当てると、カーネルが連続した4MB RAM全体を必要とする巨大なページを提供しようとすることです。今度はダーティページが多く、遅いUSBデバイスに記録し続ける必要がある場合は、メモリ割り当てを続行する前にIOが完了するのを待ちます。

答え3

前述のように、これはカーネルのhugepage設定に関連している可能性があります。私はこの問題を経験している何人かの人々を知っています。オンラインでこれに関するいくつかの文書を見つけることができます。

以下を実行して設定の問題を完全に解決しました。 YMMV、以下の修正はすべて必要なわけではなく、十分ではないかもしれません。正直言って何か忘れてしまったことがあるかもしれません。とにかくこれは私の設定で動作します。

  • linux-ckカーネルの使用
  • echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
  • echo never > /sys/kernel/mm/transparent_hugepage/defrag

答え4

ケーブルを交換してください。 USBポート/ケーブルから酸化物を取り外します。

関連情報