open_softirq(NET_TX_SOFTIRQ,net_tx_action); open_softirq(NET_RX_SOFTIRQ,net_rx_action); static int __init net_dev_init(void){ int i, rc = -ENOMEM; BUG_ON(!dev_boot_phase); if (dev_proc_init()) goto out; if (netdev_kobject_init()) goto out; INIT_LIST_HEAD(&ptype_all);...
softirqs 是在 Linux 内核编译时就确定好的,例如网络收包对应的 NET_RX_SOFTIRQ 软中断。因此是一种静态机制。如果想加一种新 softirq 类型,就需要修改并重新编译内核。 代码语言:javascript 复制 heidsoft@heidsoft-dev:~$ systemd-cgls -k | grep kworker ├─ 8 [kworker/0:0H-events_highpri]├─ 24...
仔细查看问题期间的zabbix监控数据,发现90%的CPU占用中有10%上下是sys time, 5%上下是softirq time,两者相加可占到接近20%, interrupt和context switch数由之前的10k/s飙升至20k+/s。 定位kafka log发送代码 首先猜测就是某个新加功能实现有bug,可能造成长时间未执行完成,多个类似请求长期占用CPU而后又被切换为其他...
Workqueue工作队列可以用作中断处理的Bottom-half机制,利用进程上下文来执行中断处理中耗时的任务,因此它允许睡眠,而Softirq和Tasklet在处理任务时不能睡眠; 来一张概述图: 在中断处理过程中,或者其他子系统中,调用workqueue的调度或入队接口后,通过建立好的链接关系图逐级找到合适的worker,最终完成工作任务的执行; 好文推...
si(softirq):表示 CPU 处理软中断所花费的时间。软中断是由软件程序(如网络收发、定时调度等)发出的中断信号,特点是延迟执行。 st(steal):表示 CPU 被其他虚拟机占用的时间,仅出现在多虚拟机场景。如果该指标过高,可以检查下宿主机或其他虚拟机是否异常。
softirq:低优先级中断程序 vmstat perf-vmstat cs和us时间少,id时间多,代表系统处于空闲状态 us多代表系统调用占的时间更多 cs多代表进程大部分时间运行在用户态 r太多,代表CPU竞争激烈,资源出现不够用 wa多,代表设备IO性能出现问题 top perf-top 系统内存 ...
void__initinit_timers(void){init_timer_cpus();posix_cputimers_init_work();open_softirq(TIMER_SOFTIRQ,run_timer_softirq);} 2、唤醒 timer interrupt handler-> timer_tick-> update_process_times-> run_local_timers-> hrtimer_run_queues()和raise_softirq(TIMER_SOFTIRQ)-> ...
Linux 内核里面可以有多少种softirq呢? softirq是一种非常紧急的事件,所以说,不是你想用就用的,内核里面定义了一个枚举变量来说明softirq支持的类型。 /* PLEASE, avoid to allocate new softirqs, if you need not _really_ high frequency threaded job scheduling. For almost all the purposes ...
再通过cat /proc/softirqs查看到软中断是都是网络IO产生的NET_TX,NET_RX,和时钟TIMER。 既然软中断这个贼人吃掉了我这么多的CPU时间,所以案件的嫌疑人就这么初步被我锁定了。 处理,那既然是NET_TX,NET_RX和TIMER都高,那咱就挑可以削减的功能砍一砍呗。
v[CPU_METER_KERNEL] = cpuData->systemPeriod / total * 100.0; v[CPU_METER_IRQ] = cpuData->irqPeriod / total * 100.0; v[CPU_METER_SOFTIRQ] = cpuData->softIrqPeriod / total * 100.0; v[CPU_METER_STEAL] = cpuData->stealPeriod / total * 100.0; ...