LINUX查看指定进程的Context Switch上下文切换:pidstat

Context Switch(CS)上下文切换是cpu性能中的一个重要指标,context switch过高会导致CPU像个搬运工,频繁在寄存器和运行队列之间奔波  ,更多的时间花在了线程切换,而不是真正工作的线程上。

linux中一般使用vmstat监控系统上下文切换,pidstat监控指定进程的上下文切换。

pidstat监控指定进程的Context Switch上下文切换:

首先安装sysstat:yum install sysstat  //使用的是fedora,ubuntu/debian使用apg-get

pidstat -w -G testp 1 10       //根据进程名监控上下文切换
pidstat -w -p 48863 1 10     //根据PID监控上下文切换

平均时间: UID    PID       cswch/s     nvcswch/s   Command
平均时间: 0         48770     2.53          2.78               testp

cswch/s: 每秒任务主动(自愿的)切换上下文的次数,当某一任务处于阻塞等待时,将主动让出自己的CPU资源。

nvcswch/s: 每秒任务被动(不自愿的)切换上下文的次数,CPU分配给某一任务的时间片已经用完,因此将强迫该进程让出CPU的执行权。

多处理器时添加-I参数,显示各个cpu的使用率,如pidstat -w -I -G testp 1 10

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注