我们都大概了解CPU的工作原理和调度,当CPU达到满载的情况下,进程无法获取资源会造成上下文切换这是常见的类型,当大量进程在争抢CPU的时候也会造成上下文切换,因此我们在系统设计和编码都要考虑到资源的合理分配,资源的有效利用。在我们压测过程中会随着机器CPU的使用达到一定量的情况下交易的处理会差生很大影响,因此我们需要关注到CPU的上下文切换。
Linux 是个多用户系统,支持大于cpu核数的任务在系统上运行所以不可避免的出现cpu资源竞争,竞争CPU会导致 上下文切换。
一、CPU上下文切换
1、上下文切换,有时也称做进程切换或任务切换,是指CPU从一个进程或线程切换到另一个进程或线程。
2、vmstat是一个常用的系统性能分析工具,主要用来分析系统内存使用情况,也常用来分析CPU上下文切换和中断的次数。
例:vmstat -w
上下文切换需要特别关注的四列内容:
cs(context switch) 是每秒上下文切换的次数。
in(interrupt) 则是每秒中断的次数。
r(Running or Runnable)