偶尔出现 dmesg 日志“NOHZ: local_softirq_pending 08”

偶尔出现 dmesg 日志“NOHZ: local_softirq_pending 08”

我有一台 Ubuntu 14.04 服务器,它偶尔会向 dmesg 日志发出“NOHZ: local_softirq_pending 08”错误。这是在升级到内核 4.4 后开始的;以前它在 3.16 内核上运行没有问题。以下是日志末尾的摘录:

[    7.805258] audit: type=1400 audit(1484883362.092:11): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/sbin/dhclient" pid=1636 comm="apparmor_parser"
[   10.605443] igb 0000:c1:00.0 eth0: igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[   10.605545] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   19.219187] ixgbe 0000:02:00.1 p4p2: NIC Link is Up 10 Gbps, Flow Control: None
[   19.219368] IPv6: ADDRCONF(NETDEV_CHANGE): p4p2: link becomes ready
[   52.010390] ip_tables: (C) 2000-2006 Netfilter Core Team
[   52.089283] init: plymouth-upstart-bridge main process ended, respawning
[ 2857.027773] perf interrupt took too long (2542 > 2500), lowering kernel.perf_event_max_sample_rate to 50000
[ 7195.391731] perf interrupt took too long (5012 > 5000), lowering kernel.perf_event_max_sample_rate to 25000
[37277.461862] perf interrupt took too long (10050 > 10000), lowering kernel.perf_event_max_sample_rate to 12500
[239795.500056] NOHZ: local_softirq_pending 08
[579047.644110] NOHZ: local_softirq_pending 08
[837865.916051] NOHZ: local_softirq_pending 08

它是一个具有 32 个核心且负载适中的生产数据库主机。

我想知道我是否应该关注这些消息,如果是的话我该如何解决这个问题。

内核详细信息在这里:

[    0.000000] Linux version 4.4.0-59-generic (buildd@lcy01-32) (gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) ) #80~14.04.1-Ubuntu SMP Fri Jan 6 18:02:02 UTC 2017 (Ubuntu 4.4.0-59.80~14.04.1-generic 4.4.35)
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.4.0-59-generic root=UUID=5db4a2c8-24f4-409b-b437-6120682cc518 ro noautogroup transparent_hugepage=never nomdmonddf nomdmonisw

答案1

在启动时添加nohz=off到内核参数以禁用它。

此选项使 RCU 尝试加速宽限期,以便 CPU 更快地进入 dynticks-idle 状态。另一方面,此选项会增加 dynticks-idle 检查的开销,尤其是在具有大量 CPU 的系统上。

您似乎受到了粗体部分的影响。

更多阅读...

相关内容