上周五,我将Ubuntu服务器升级到11.10,该服务器现在运行3.0.0-12服务器内核。从那以后,整体性能急剧下降。升级之前,系统负载约为0.3,但在8核CPU系统上,它的负载为22-30(16 GB RAM)(10GB可用空间,不使用交换空间)。
我要怪BTRFS文件系统驱动程序和底层MD阵列,因为[md1_raid1]和[btrfs-transacti]消耗了很多资源。但是所有的[kworker / *:*]消耗更多。
sar
自周五以来一直不断输出类似的结果:
11:25:01 CPU %user %nice %system %iowait %steal %idle
11:35:01 all 1,55 0,00 70,98 8,99 0,00 18,48
11:45:01 all 1,51 0,00 68,29 10,67 0,00 19,53
11:55:01 all 1,40 0,00 65,52 13,53 0,00 19,55
12:05:01 all 0,95 0,00 66,23 10,73 0,00 22,10
并iostat
确认写入速度非常差:
sda 129,26 3059,12 614,31 258226022 51855269
sdb 98,78 24,28 3495,05 2049471 295023077
md1 191,96 202,63 611,95 17104003 51656068
md0 0,01 0,02 0,00 1980 109
问题是:我该如何追踪为什么kworker线程会消耗这么多的资源(以及哪一个)?或者更好:这是3.0内核的一个已知问题,我可以使用内核参数对其进行调整吗?
编辑:
我已按照BTRFS开发人员的建议将内核更新为全新的版本3.1。但是不幸的是,这并没有改变任何东西。
pcie_ports=compat
或启动pcie_ports=native
。(首先尝试“本机”。解决问题的可能性较小,但引起其他问题的可能性较小。)