kk Blog —— 通用基础


date [-d @int|str] [+%s|"+%F %T"]
netstat -ltunp
sar -n DEV 1

中断时间统计

软中断运行在中断上下文,不会被抢占调度,只会被硬中断打断,但硬中断退出时还是继续执行没结束的软中断。

因为软中断不是运行在进程上下文,不具备被调度的前提,也不具备统计运行时间。系统是将softirq的时间加到当前被他打断的进程上(还是不统计softirq时间???有待学习)。

如果当前系统只运行数据包的接收服务,那么系统很可能显示的是100%idle,因为被softirq打断的进程就是idle。

如果softirq足够多,导致启动了ksoftirqd进程来协助处理,那么softirq的时间会被记到ksoftirqd的进程上,显示有“有点正常”了。

这样就会出现:当cpu个数充足时显示100%idle,然后减少到一半cpu就显示X%si。也就是说显示100%idle是不对,应该是近似的(x/2)%si

debug, mark

« linux内核分析之调度算法(一) mod_timer会切换cpu »