ksoftirqd/n 占用cpu 100%
1.背景
当来自设备的中断时,操作系统会暂停它正在执行的操作并开始寻址该中断。
在某些情况下,IRQ一个接一个地非常快,操作系统无法在另一个到达之前完成一个服务。当高速网卡在短时间内收到大量数据包时,就会发生这种情况。
因为操作系统在到达时无法处理IRQ(因为它们一个接一个地到达得太快),
操作系统会将它们排队等待稍后由名为ksoftirqd
的/n(n为cpu的逻辑号)的内核线程处理。
每个ksoftirqd/n内核线程都运行ksoftirqd()函数,实际上该函数执行下面的循环:
for (;;)
{set_current_state(TASK_INTERRUPTIBLE);schedule();while (local_softirq_pending()){preempt_disable();do_softirq(); // 处理软中断preempt_enable();cond_resched();}
}
如果ksoftirqd
占用的CPU时间超过一小部分,则表示机器处于严重的中断负载下。
2.解决方法
可以用cat /proc/interrupts来查看设备造成的中断情况
例如某天我的是这样
CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 0: 44 0 0 0 0 0 0 0 IO-APIC 2-edge timer1: 0 1 1 0 0 0 0 1 IO-APIC 1-edge i80428: 1 0 0 0 0 0 0 0 IO-APIC 8-edge rtc09: 0 0 0 0 0 0 0 0 IO-APIC 9-fasteoi acpi12: 0 0 0 0 2 1 1 0 IO-APIC 12-edge i804214: 16 35619 2171878 33951 2172032 35710 2172366 35859 IO-APIC 14-edge ata_piix15: 0 0 0 0 0 0 0 0 IO-APIC 15-edge ata_piix16: 1492 1492 1492 38096398 1489 1492 1496 1491 IO-APIC 16-fasteoi ioc019: 38 38 37 38 37 39 38 38 IO-APIC 19-fasteoi radeon20: 3 3 4 4 5 3 4 4 IO-APIC 20-fasteoi uhci_hcd:usb3, uhci_hcd:usb521: 4 3 4 3 5 4 4 4 IO-APIC 21-fasteoi ehci_hcd:usb1, uhci_hcd:usb2, uhci_hcd:usb424: 0 0 0 0 0 0 0 0 PCI-MSI 32768-edge PCIe PME25: 0 0 0 0 0 0 0 0 PCI-MSI 49152-edge PCIe PME26: 0 0 0 0 0 0 0 0 PCI-MSI 65536-edge PCIe PME27: 0 0 0 0 0 0 0 0 PCI-MSI 81920-edge PCIe PME28: 0 0 0 0 0 0 0 0 PCI-MSI 98304-edge PCIe PME29: 0 0 0 0 0 0 0 0 PCI-MSI 114688-edge PCIe PME30: 0 0 0 0 0 0 0 0 PCI-MSI 458752-edge PCIe PME31: 1380 1346 1353 1339 1339 1357 1329 1360 PCI-MSI 3670016-edge eno232: 85511967 85513711 85083641 83994544 85084225 85501922 85093691 85515746 PCI-MSI 1572864-edge eno1
NMI: 234694 241328 233682 235747 227371 232679 239850 230941 Non-maskable interrupts
LOC: 809615451 844980307 827224481 872760389 798336595 856256586 824716208 858800687 Local timer interrupts
SPU: 0 0 0 0 0 0 0 0 Spurious interrupts
PMI: 234694 241328 233682 235747 227371 232679 239850 230941 Performance monitoring interrupts
IWI: 234691 241323 233680 235741 227368 232677 239846 230941 IRQ work interrupts
RTR: 0 0 0 0 0 0 0 0 APIC ICR read retries
RES: 50636771 36959166 32328971 32915351 29242823 29889193 29928230 31502838 Rescheduling interrupts
CAL: 4443659 7479033 5592654 1507128 4465404 8053047 5214542 1501877 Function call interrupts
TLB: 6476601 6460251 6517362 6225272 6466684 6345076 6491077 6193616 TLB shootdowns
TRM: 0 0 0 0 0 0 0 0 Thermal event interrupts
THR: 0 0 0 0 0 0 0 0 Threshold APIC interrupts
DFR: 0 0 0 0 0 0 0 0 Deferred Error APIC interrupts
MCE: 0 0 0 0 0 0 0 0 Machine check exceptions
MCP: 22724 22724 22724 22724 22724 22724 22724 22724 Machine check polls
ERR: 0
MIS: 0
PIN: 0 0 0 0 0 0 0 0 Posted-interrupt notification event
PIW: 0 0 0 0 0 0 0 0 Posted-interrupt wakeup event
注意到序号32那爆炸的中断数量,可以断定是网卡瘫痪了。只需要ifdown eno1 && ifup eno1重启网卡即可。
ksoftirqd/n 占用cpu 100%相关推荐
- linux 进程 ksoftirqd/n 占用cpu 100%
1.背景 当来自设备的中断时,操作系统会暂停它正在执行的操作并开始寻址该中断. 在某些情况下,IRQ一个接一个地非常快,操作系统无法在另一个到达之前完成一个服务.当高速网卡在短时间内收到大量数据包时, ...
- 使用dotnet-dump 查找 .net core 3.0 占用CPU 100%的原因
使用dotnet-dump 查找 .net core 3.0 占用CPU 100%的原因 原文:使用dotnet-dump 查找 .net core 3.0 占用CPU 100%的原因 公司的产品一直 ...
- kprobe分析内核kworker占用CPU 100%问题总结
kprobe分析内核kworker占用CPU 100%问题总结 Create by Billow.Jen,2020.3.8 前言 利用linux kernel 动态追踪技术,排查问题本身就可能会变成一 ...
- 如何停止Linux系统中占用CPU 100%的进程
linux 很好,占用系统资源低,低端机都可以流畅的运行.但是偶尔也会遇到像windows下烦人的问题,那就是进程占用CPU100%. 最近我就遇到了这个问题,还好,我使用了一套组合拳,把占用CPU资 ...
- spoolsv.exe占用cpu 100%的解决方法
前几天,太太的笔记本遇到了spoolsv.exe占cpu 99%的的问题,要我帮她重新安装操作系统.我是懒得重装的,所以在网上搜索了一下:大部分关于这个问题的文章都是将相关打印后台服务给禁用解决的,可 ...
- eclipse占用内存过大_MySQL 服务占用cpu 100%,如何排查问题? (MySQL面试第七弹)...
阅读本文大概需要 4 分钟.来自:cnblogs.com/dennyzhangdd/p/11585971.html 一.引子 对于互联网公司,线上CPU飙升的问题很常见(例如某个活动开始,流量突然飙升 ...
- svchost.exe占用CPU 100%,也可能是这样的原因
近来碰到这么个问题,就是电脑在使用一段时间后变得异常迟钝,用任务管理器一看,发现CPU被一个名为svchost.exe的进程占用完了. 一开始的反应是遭遇病毒了,马上到网站上搜索相关的文章,找 ...
- python-kafka消费者-占用CPU 100%
#消费完释放CPU,否则会直接将CPU消耗完 msg = consumer.poll() time.sleep(0.05)
- WerFault.exe 占用CPU 100%的问题处理
转载自:https://technet.microsoft.com/en-us/library/cc754364(v=ws.11).aspx 关于禁用WerFault.exe进程的操作方法,网络上的其 ...
最新文章
- Flutter开发之图片加载(九)
- 目前用的java几_java目前常用的几种定时任务
- 更新MYSQL生成日历表,支持跨年份 存储过程
- 交互式多模型_论文深度提升的万金油方法——多属性决策 Ⅱ
- visio网络拓扑图_人才测评模型是什么?5步了解好看模型图
- 程序员做到年薪60万也不去炫富,背后原因曝光,麻烦做个人吧
- Odoo10教程---模块化三:模型约束,高级视图,工作流,安全性,向导,国际化和报表等
- c语言指针详解 PPT,最全C语言指针详解.ppt
- 戴尔笔记本修改硬盘模式为AHCI再安装ubuntu
- 软件测试周刊(第61期):内心强大的人都有三个共性「不和他人作比较」「不对他人有期待」「不批判他人」
- win10多显示器设置只有主显示屏显示任务栏
- VS中无法解析的外部命令的解决办法
- GIS(一)——在js版搜索地图上添加Marker标记
- 魔兽世界最新服务器推荐,[大陆]《魔兽世界》全新第六大区推荐服务器
- 定位尺寸的严重错误在哪里?
- mask rcnn 超详细代码解读(一)
- 请尊重我们移动10086每一位前台客服人员(ZZ)
- 什么样的女人才是老婆
- 关于网络安全设备总结
- java面试训练 app_Java面试训练app下载