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


11

私のデスクトップは通常、負荷が大きくても非常に応答が速いです。しかし、ファイルを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に終わりました。

ソフトウェア情報:

  • openSUSE 12.1
  • KDE 4.7.x
  • ファイルシステム:内蔵ハードディスク上のreiserfsとbtrfs、USBドライブ上のbtrfs

1
USBドライブsyncをマウントして、これがどのような影響を与えるか(ある場合)を確認しましたか?
Alexios 2012

2
USBの欠点は、IOをCPUに大きく依存していることです。システムにはどのようなCPUがありますか?の出力をgrep name /proc/cpuinfo質問に追加してください。
ジッピー

1
イルカを使ってファイルをドラッグアンドドロップしますか?その場合cpは、コマンドラインからイルカのバグの可能性を排除してください。
Jari Laamanen

@JariLaamanen:rsyncコマンドラインから使用しています。
アーロンディグラ

1
@jippie:実際にはUIがハングアップするため、スクリーンショットを作成できません。私はiostat -c -z -d 1
Aaron Digulla

回答:


4

私の最初の推測は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

openSUSE 12.1のlinux-3.1カーネルでも同様の問題が発生し、透過的な巨大ページを無効にすることが役立つことがわかりました。

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

根本的な問題は、アプリケーションが4MB以上を割り当てると、カーネルがそれに大きなページを与えようとすることです。そのためには、連続した4MBのRAM全体が必要です。ダーティページが多数あり、それでも低速のUSBデバイスに書き込む必要がある場合は、そのIOが完了するのを待ってからメモリ割り当てを続行します。


1

前述のように、これはおそらくカーネルのhugepagesセットアップに関係しています。この問題を抱えている人を何人か知っています。あなたはそれに関するウェブ上のいくつかのドキュメントを見つけることができます、例えば

次のようにして、セットアップの問題を完全に修正しました。YMMVに注意してください。以下のすべての修正が必要なわけではなく、十分でない場合もあります。正直に言うと何かを忘れてしまったのかもしれません。とにかくそれは私のセットアップであり、うまくいきます。

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

-2

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


もう少し複雑にする必要があります。FAQを
Karlson 2012
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.