这已经是向 Debian 报告为错误。
我有一台平均水平较高的 i5。如图所示top
,对于空闲系统(只有 sshd 和 2 个会话),该负载2.00
始终保持不变。该机器安装了全新的 Debian 9,而且开箱即用并不是完美的一对,因为我已经不得不处理一个 kworker 一直占用一个核心 80% 的情况,与所描述的问题相同这里(使用 Ubuntu 16.04)。
我已经安装了 Debian 的非免费固件:
- 固件-realtek
- 固件-iwlwifi
但我也在没有安装这些驱动的情况下使用 Debian Live 进行了测试,没有什么区别。
整个top
标题看起来是这样的:
top - 13:42:33 up 1:33, 3 users, load average: 1.83, 2.01, 2.01
Tasks: 230 total, 1 running, 229 sleeping, 0 stopped, 0 zombie
%Cpu0 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3955660 total, 2123712 free, 657580 used, 1174368 buff/cache
KiB Swap: 4095996 total, 4095996 free, 0 used. 2888300 avail Mem
iostat
:
avg-cpu: %user %nice %system %iowait %steal %idle
0.04 0.00 0.08 0.04 0.00 99.83
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 4.00 0.00 20.00 0 120
sdb 0.00 0.00 0.00 0 0
dm-0 5.17 0.00 20.00 0 120
dm-1 3.50 0.00 14.00 0 84
dm-2 1.50 0.00 6.00 0 36
dm-3 0.00 0.00 0.00 0 0
dm-4 0.00 0.00 0.00 0 0
dm-5 0.00 0.00 0.00 0 0
nload
显示非常低的值:
- 传入平均:1.14 kBit/s
- 传出平均:9.27 kBit/s
总而言之,系统看起来很空闲,但有报告的负载。我猜温度似乎也有点高:
$ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1: +27.8°C (crit = +105.0°C)
temp2: +29.8°C (crit = +105.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Physical id 0: +50.0°C (high = +84.0°C, crit = +100.0°C)
Core 0: +47.0°C (high = +84.0°C, crit = +100.0°C)
Core 1: +50.0°C (high = +84.0°C, crit = +100.0°C)
以下是最重要的进程:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5017 root 20 0 45052 3860 3200 R 1.0 0.1 0:00.10 top
165 root 20 0 0 0 0 D 0.3 0.0 0:07.94 kworker/3:3
1259 tomasz 20 0 1306660 41600 32768 S 0.3 1.1 0:03.08 gnome-settings-
1 root 20 0 139492 7252 5268 S 0.0 0.2 0:00.90 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
按照提示进行操作这个答案D
,这是状态或中的进程列表R
:
# ps -e v | perl -nalE 'say $_ if $F[2] =~ /R|D/'
47 ? D 0:14 0 0 0 0 0.0 [kworker/3:1]
165 ? D 0:14 0 0 0 0 0.0 [kworker/3:3]
393 ? D 0:00 0 0 0 0 0.0 [rtsx_usb_ms_1]
5640 pts/0 R+ 0:00 0 106 29757 1564 0.0 ps -e v
5641 pts/0 R+ 0:00 0 1940 15691 3448 0.0 perl -nalE say $_ if $F[2] =~ /R|D/
每次重新启动后,这组两个 kworkers 和处于状态 D 的 rtsx_usb_ms_1 始终存在。
我一直在尝试不同的 BIOS 配置和内核参数,acpi_osi=Linux
负载可能没有减少,但只有一点点,仍然接近 2.00 平均值。
我想知道是否应该将其作为错误归档。那么收件人是谁呢?德班?核心?
机器详情:
- 主板:富士通FJNBB35
- CPU:Intel(R) Core(TM) i5-4200M CPU @ 2.50GHz
- RAM:4G,SODIMM DDR3 同步 1600 MHz (0.6 ns),三星 M471B5173QH0-YK0
- 操作系统:4.9.0-6-amd64 #1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02) x86_64 GNU/Linux
答案1
在我看来,rtsx_usb_ms_1 进程可能是罪魁祸首。适用于 Realtek 记忆棒/SD 卡读卡器设备。您可以尝试将驱动程序列入黑名单,例如
echo blacklist rtsx_usb_ms >> /etc/modprobe.d/99-local.conf
...然后重新启动以查看阻止驱动程序加载是否可以解决该问题。简单地跑步rmmod rtsx_usb_ms
也可能有效。不过,您必须手动加载内核模块或删除黑名单并重新启动才能使用阅读器。
这可能是一个回归,因为这个补丁(https://lkml.org/lkml/2014/11/5/905)用于修复 Debian bug #765717。也许它从未进入主线内核。
如果删除/将模块列入黑名单可以解决问题,我会向 Debian 提交错误报告。