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

作者: Java程序员YY | 来源:发表于2019-08-19 16:29 被阅读0次

    既然我们知道频繁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分析具体中断情况

    小编这里整理了更多相关的 学习资料和 学习视频,可免费领取。

    加 VX:18410263200    通过验证备注:111(备注必填,方便通过)

    相关文章

      网友评论

        本文标题:linux性能速查-CPU上下文切换(二)

        本文链接:https://www.haomeiwen.com/subject/jihesctx.html