私のデスクトップは通常、負荷が重い場合でも非常に反応します。ただし、USBドライブにファイルをコピーすると、一定時間が経過すると常に動作が停止します。 「ロック」とは次のとおりです。
- あるウィンドウから別のウィンドウにフォーカスを移動するのに10〜20秒かかることがあります。
- デスクトップの切り替えには10〜20秒かかることがあります。
- 動画は更新されなくなりました。 (YouTubeでは音声が再生され続け、動画のみが停止します。)
この場合、システム負荷は特に高くありません。時にはxosviewに白がたくさん見えます。これはカーネルがどこかで使用されていることを示します。
一見すると、ファイルをUSBドライブにコピーすると、何らかの方法でcompizに邪魔になりそうですが、どの接続があるのか想像できません。
出力は次のとおりですhtop
。
iostat -c -z -t -x -d 1
2分間中断された間の出力は次のとおりです。
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設定に関連している可能性があります。私はこの問題を経験している何人かの人々を知っています。オンラインでこれに関するいくつかの文書を見つけることができます。
- https://bbs.archlinux.org/viewtopic.php?id=112846&p=1
- http://lwn.net/Articles/467328/
- http://forum.manjaro.org/index.php?topic=2062.0
- USBデバイスからファイルをコピーするとパフォーマンスが低下する
以下を実行して設定の問題を完全に解決しました。 YMMV、以下の修正はすべて必要なわけではなく、十分ではないかもしれません。正直言って何か忘れてしまったことがあるかもしれません。とにかくこれは私の設定で動作します。
- linux-ckカーネルの使用
echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
答え4
ケーブルを交換してください。 USBポート/ケーブルから酸化物を取り外します。