中华考试网·阅读新闻
操作系统 > Linux > 文章内容

Linux基础教程:Linux性能监控-CPU

2016-2-7编辑:ljnbset

CPU

良好状态指标

CPU利用率:User Time <= 70%,System Time <= 35%,User Time + System Time <= 70%。

上下文切换:与CPU利用率相关联,如果CPU利用率状态良好,大量的上下文切换也是可以接受的。

可运行队列:每个处理器的可运行队列<=3个线程。

监控工具

vmstat

$ vmstat 1

先看一个字段能对齐的:

下面的是别人服务器的情况:

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------

r  b  swpd  free  buff  cache  si  so    bi    bo  in  cs us sy id wa st

14  0    140 2904316 341912 3952308  0    0    0  460 1106 9593 36 64  1  0  0

17  0    140 2903492 341912 3951780  0    0    0    0 1037 9614 35 65  1  0  0

20  0    140 2902016 341912 3952000  0    0    0    0 1046 9739 35 64  1  0  0

17  0    140 2903904 341912 3951888  0    0    0    76 1044 9879 37 63  0  0  0

16  0    140 2904580 341912 3952108  0    0    0    0 1055 9808 34 65  1  0  0

重要参数:

r,run queue,可运行队列的进程数,这些进程都是可运行状态,只不过CPU暂时不可用。

b,被blocked的进程数,正在等待IO请求。

in,interrupts,被处理过的中断数。

cs,context switch,系统上正在做上下文切换的数目。

us,用户占用CPU的百分比。

sys,内核和中断占用CPU的百分比。

id,CPU完全空闲的百分比。

上例可得:

sy高us低,以及高频度的上下文切换(cs),说明应用程序进行了大量的系统调用。

这台4核机器的r应该在12个以内,现在r在14个线程以上,此时CPU负荷很重。

查看某个进程占用的CPU资源

$ while :; do ps -eo pid,ni,pri,pcpu,psr,comm | grep 'db_server_login'; sleep 1; done

  PID  NI PRI %CPU PSR COMMAND

28577  0  23  0.0  0 db_server_login

28578  0  23  0.0  3 db_server_login

28579  0  23  0.0  2 db_server_login

28581  0  23  0.0  2 db_server_login

28582  0  23  0.0  3 db_server_login

28659  0  23  0.0  0 db_server_login

Linux基础教程:CentOS(5.8/6.7)Linux生产环境若干优化实战
咨询热线:4000-525-585(免长途费)