Centos 6.9(64GB 内存)
运行 nginx、mariadb、php-fpm、iptables、java
该服务器仅在 1 个核心上随机但频繁地出现 100% 系统 CPU 负载突发,导致服务器的网络连接瘫痪。
我发现即使 nginx、mariadb、php-fpm、iptables 和 java 没有运行,问题仍然存在。
我尝试安装 irqbalance,但没有任何变化。我尝试重启几次,但没有任何变化。我尝试 yum update,但没有任何变化。我尝试将 ssd 交换到具有相同硬件的另一台服务器,但没有任何变化。我尝试 SMART 检查 ssd 是否存在问题,没有错误。我检查了问题是否与 swappiness 有关,但没有任何交换。
“/proc/interrupts”显示与 ksoftirqd 相关的中断是 eth0 我不知道要采取哪些步骤来排除故障。我需要帮助,因为托管在此服务器上的服务因突发事件(可能持续 10-15 分钟,停止然后随机重新出现)而受到严重影响。
top 或 htop 没有显示任何令人担心的运行或占用那么多 CPU 的内容,只有 ksoftirqd 和事件。
该问题是几天前才开始的,据我所知,内核/操作系统没有做出任何可能导致该问题的更改。
100% 负载期间的“iostat”
Linux 2.6.32-696.30.1.el6.x86_64 (CentOS-69-64-minimal) _x86_64_ (16 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
8.01 0.00 3.03 0.20 0.00 88.76
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sdb 83.52 18.46 1341.05 2874477 208769462
sda 94.26 435.50 1341.05 67797010 208769462
md1 0.00 0.01 0.00 2106 12
md0 0.26 0.25 1.82 38640 283096
md2 176.32 453.67 1322.56 70625762 205890864
100% 负载期间的“/proc/interrupts”
CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 CPU8 CPU9 CPU10 CPU11 CPU12 CPU13 CPU14 CPU15
0: 681 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IO-APIC-edge timer
1: 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IO-APIC-edge i8042
8: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IO-APIC-edge rtc0
9: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IO-APIC-fasteoi acpi
12: 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IO-APIC-edge i8042
56: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv
57: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv
58: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv
65: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge xhci_hcd
66: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge xhci_hcd
67: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge xhci_hcd
68: 16149263 0 0 0 0 0 0 0 0 0 0 19021454 0 0 0 0 PCI-MSI-edge ahci
69: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge ahci
70: 158827141 0 0 0 82558205 0 0 0 0 0 2755343 0 0 0 0 0 PCI-MSI-edge eth0
NMI: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Non-maskable interrupts
LOC: 123773684 105894389 123476055 142376826 111487788 122494116 118841739 134480148 113422196 121203288 114414525 114218214 114794017 119322938 115083581 119549111 Local timer interrupts
SPU: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Spurious interrupts
PMI: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Performance monitoring interrupts
IWI: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IRQ work interrupts
RES: 54086898 67527262 46597734 44323475 25356657 32869325 18540932 20137227 13606660 13955101 14826738 12242106 10962617 11082631 10466998 10574150 Rescheduling interrupts
CAL: 1258 1407 1440 1446 1474 1442 1448 1436 1436 1435 1435 1431 1438 1449 1449 1430 Function call interrupts
TLB: 8082115 6419817 4992332 3914962 5927373 4081295 4056598 2953591 4134873 3207107 3852793 5106863 3780341 3298234 3875200 3270066 TLB shootdowns
TRM: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Thermal event interrupts
THR: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Threshold APIC interrupts
MCE: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Machine check exceptions
MCP: 520 520 520 520 520 520 520 520 520 520 520 520 520 520 520 520 Machine check polls
ERR: 0
MIS: 0
我在 dmesg 上看到了一些奇怪的事情,它没有打印任何有问题的内容,但是这行自启动以来重复了 50 次(出于隐私原因,用 X 替换了我的 ip):
TCP: Peer X.XX.XXX.XXX:56847/44567 unexpectedly shrunk window 2670303830:2670305282 (repaired)
顶部
https://i.stack.imgur.com/lpP1d.png
任何形式的帮助都会受到感谢,我现在真的很想解决这个问题。
答案1
这个 ksoftirqd 不是服务器故障,邮件问题与内核版本有关,请检查内核版本 Linux localhost 2.6.32-Linux localhost 2.6.32-573.6.3.el6.x86_64_64 使用这些没有问题如果你升级内核到 754 版本那时一些 perl 和 asterisk 模块崩溃了,为什么 CPU 利用率会升高所有的 centos 6.10 服务器你可以使用低于 600 的内核版本这是最好的谢谢。