CPU性能问题排查方法-上下文切换

过多上下文切换会把CPU时间消耗再寄存器、内核栈以及虚拟内存等数据的保存和恢复上,缩短进程真正运行时间,是系统性能下降的一个主要原因。

vmstat查看系统上下文切换情况:

  • cs(context switch)每秒上下文切换次数
  • in(interrupt)每秒中断次数
  • r (running or runnable)正在运行和等待CPU进程数
  • b(blocked)不可中断睡眠状态的进程数

vmstat 可以查看系统整体上下文切换情况,如果要看每个进程的上下文切换就需要用pidstat

pidstat查看每个进程上下文切换详细情况:

  • cswch(voluntary context switches)自愿上下文切换:进程无法获取所需资源,导致上下文切换。比如I/O,内存等系统资源不足时会发生自愿上下文切换。
  • nvcswch(non voluntary context switches)非自愿上下文切换:进程由于时间片已到等原因,被系统强制调度,发生上下文切换。比如大量进程都在争抢CPU时,就容易发生非资源上下文切换。

猜你喜欢

转载自blog.csdn.net/datuzijean/article/details/86624035