linux性能速查-CPU上下文切换(二)

该linux系列博客为自己速查问题而写,比较乱,仅供参考,如有问题,请参考权威书籍或文档,谢谢。

既然我们知道频繁CPU上下文切换会导致平均负载升高,那么如何排除问题呢?

使用性能监控工具vmstat可以查看上下文切换次数,中断数,就绪队列长度,不可中断数等指标。

如上图所示,重点关注:

cs-每秒上下文切换次数

in-每秒中断数

r-就绪队列长度(正在运行或正在等待CPU的进程数) 

b-不可中断睡眠进程数

us-用户态CPU使用率

sy-系统CPU使用率,一般为内核占用

如果发现cs列上下文切换次数过高(超过1万以上,经验值),就需要用pidstat -w 5查看进程上下文切换次数了。

cswch:自愿上下文切换,进程运行时由于系统资源不足,如IO,内存等原因不得不进行切换。

nvcswch:非自愿上下文切换,比如时间片用完,系统调度让其他任务运行,或者竞争CPU的时候也会发生。 

查看进程上下文切换次数:

pidstat -wt 1 (w-上下文切换指标,t-线程)

内核实际调度的线程,所以要用t看上下文切换次数。

中断次数高可以查看/proc/interrupts 文件,其中的RES是重调度分配,多任务竞争CPU可以导致RES升高。

总之,排查上下文切换次数时,要结合上下文类型:

  • 自愿的切换的多了,表明在等待资源,如IO
  • 非自愿的切换的多了,表明CPU被任务竞争
  • 中断数多,要结合/proc/interrupts分析具体中断情况
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值