西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > 开发教程 > linux教程 >

Linux上下文切换监控

时间:2016-04-12 12:16来源:未知 作者:好模板 点击:
我们在监测Linux的应用的时候,当CPU的利用率非常高,但是系统的性能却上不去的时候,不妨监控一下线程/进程的切换,看看是不是context switching导致的overhead过高。 一般我使用dstat工具

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

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

---system--
intcsw
367561
274439
279363

或者 vmstat 3 :

[root@colobusmallnest]#vmstat3
procs-----------memory-------------swap-------io------system-------cpu-----
rbswpdfreebuffcachesisobiboincsussyidwast
000312619231692152161200176325166258119630

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

执行 pidstat -w

root@abcsmallnest]# pidstat -w
Linux2.6.32-358.el6.x86_64 (abc)04/11/2016_x86_64_(2CPU)

11:25:00PMPIDcswch/s nvcswch/sCommand
11:25:00PM10.600.03init
11:25:00PM20.040.00kthreadd
11:25:00PM30.360.00migration/0
11:25:00PM40.580.00ksoftirqd/0
11:25:00PM50.010.00migration/0
11:25:00PM60.080.00watchdog/0
11:25:00PM70.390.00migration/1
11:25:00PM80.010.00migration/1
11:25:00PM90.520.00ksoftirqd/1
……

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

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

[root@abc allnest]# pidstat -wt
Linux 2.6.32-358.el6.x86_64 (abc)04/11/2016_x86_64_ (2CPU)

11:27:57PM TGID TID cswch/s nvcswch/s Command
11:27:57PM1-0.560.03init
11:27:57PM -10.560.03|__init
11:27:57PM2-0.030.00kthreadd
11:27:57PM -20.030.00|__kthreadd
11:27:57PM3-0.340.00migration/0
11:27:57PM -30.340.00|__migration/0
11:27:57PM4-0.570.00ksoftirqd/0
11:27:57PM -40.570.00|__ksoftirqd/0
11:27:57PM5-0.010.00migration/0
……

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

(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容