0
0

Linux上下文切换监控

鸟窝 发表于 2016年06月15日 10:43 | Hits: 1541
Tag: Linux

我们在监测Linux的应用的时候,当CPU的利用率非常高,但是系统的性能却上不去的时候,不妨监控一下线程/进程的切换,看看是不是context switching导致的overhead过高。

一般我使用dstat工具用来监控,比如dstat -y:

12345
---system-- int   csw  367   561  274   439  279   363

或者vmstat 3:

1234
[root@abc smallnest]# vmstat 3procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st 0  0      0 3126192  31692 1521612  0    0   176   325  166  258  1  1 96  3  0

但是如何知道那些进程/线程做切换能,淘宝褚霸有篇文章:latencytop深度了解你的Linux系统的延迟介绍了一种方法。事实上,有一个工具pidstat,可以用来监控上下文切换。 它是sysstat包其中的一个工具,sysstat包含好几个很棒的工具,比如sar、iostat等。

执行pidstat -w

1234567891011121314
root@abc smallnest]# pidstat -wLinux 2.6.32-358.el6.x86_64 (abc) 	04/11/2016 	_x86_64_	(2 CPU)11:25:00 PM       PID   cswch/s nvcswch/s  Command11:25:00 PM         1      0.60      0.03  init11:25:00 PM         2      0.04      0.00  kthreadd11:25:00 PM         3      0.36      0.00  migration/011:25:00 PM         4      0.58      0.00  ksoftirqd/011:25:00 PM         5      0.01      0.00  migration/011:25:00 PM         6      0.08      0.00  watchdog/011:25:00 PM         7      0.39      0.00  migration/111:25:00 PM         8      0.01      0.00  migration/111:25:00 PM         9      0.52      0.00  ksoftirqd/1……

cswch/s是主动地上下文切换,nvcswch/s是被动执行上下文切换的次数。

如要要显示线程的上下文切换统计,可以执行``:

1234567891011121314
[root@abc smallnest]# pidstat -wtLinux 2.6.32-358.el6.x86_64 (abc) 	04/11/2016 	_x86_64_	(2 CPU)11:27:57 PM      TGID       TID   cswch/s nvcswch/s  Command11:27:57 PM         1         -      0.56      0.03  init11:27:57 PM         -         1      0.56      0.03  |__init11:27:57 PM         2         -      0.03      0.00  kthreadd11:27:57 PM         -         2      0.03      0.00  |__kthreadd11:27:57 PM         3         -      0.34      0.00  migration/011:27:57 PM         -         3      0.34      0.00  |__migration/011:27:57 PM         4         -      0.57      0.00  ksoftirqd/011:27:57 PM         -         4      0.57      0.00  |__ksoftirqd/011:27:57 PM         5         -      0.01      0.00  migration/0……

更多的参数可以man pidstat获得。

原文链接: http://colobu.com/2016/04/12/context-switching-monitor/

0     0

评价列表(0)