CPU上下文切换频繁定位
1、看如何查看系统的上下文切换情况
vmstat 5
其中跟本文相关的比较重要的几列的含义:
-
r:正在运行和等待CPU的进程数
-
b:处于不可中断睡眠状态的进程数
-
in:每秒中断次数
-
cs:每秒上下文切换次数
-
us:用户进程占用的cpu
-
sy:系统进程占用的cpu
接着使用pidsta工具观察cpu上下文切换:
pidstat -w 5
这个结果中有两列我们需要关注的内容:
-
cswch:每秒自愿上下文切换,也就是进程无法获取到可供执行的资源从而自愿发生上下文切换
-
nvcswch:每秒非自愿上下文切换,进程时间片用完、被高优先级进程抢走、系统中断等发生的非自愿的场景