我的桌面通常反应灵敏,即使在重负载下也是如此。但是当我将文件复制到 USB 驱动器时,它总是在一段时间后锁定。通过“锁定”,我的意思是:
发生这种情况时,系统负载并不是特别高。有时,我在 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
Run Code Online (Sandbox Code Playgroud)
如您所见,只有外部硬盘处于活动状态。这是完整的日志:http : //pastebin.com/YNWTAkh4
挂起从 20:38:01 开始,到 20:40:19 结束。
软件信息:
我的第一个猜测是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
Run Code Online (Sandbox Code Playgroud)
嗯,呃。USB 驱动程序使用与显卡相同的 IRQ,并且它位于链中的第一个。如果它锁定了(因为文件系统执行了一些昂贵的操作),显卡就会陷入饥饿(网络也同样如此)。