龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 操作系统 > LINUX系统 >

Linux 性能监控分析(3)

时间:2014-06-22 03:05来源:网络整理 作者:网络 点击:
分享到:
(1)CPU利用率,如果CPU有100%利用率,那么应该到达这样一个平衡:65%-70%User Time,30%-35%System Time,0%-5%Idle Time; (2)上下文切换,上下文切

       (1)CPU 利用率,如果 CPU 有 100% 利用率,那么应该到达这样一个平衡:65%-70% User Time,30%-35% System Time,0%-5% Idle Time;

       (2)上下文切换,上下文切换应该和 CPU 利用率联系起来看,如果能保持上面的 CPU 利用率平衡,大量的上下文切换是可以接受的;

       (3)可运行队列,每个可运行队列不应该有超过1-3个线程(每处理器),比如:双处理器系统的可运行队列里不应该超过6个线程。

2.2  vmstat

       vmstat 是个查看系统整体性能的小工具,小巧、即使在很 heavy 的情况下也运行良好,并且可以用时间间隔采集得到连续的性能数据。

$ 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
 2  1    140 2787980 336304 3531996  0    0     0   128 1166 5033  3  3 70 25  0
 0  1    140 2788296 336304 3531996  0    0     0     0 1194 5605  3  3 69 25  0
 0  1    140 2788436 336304 3531996  0    0     0     0 1249 8036  5  4 67 25  0
 0  1    140 2782688 336304 3531996  0    0     0     0 1333 7792  6  6 64 25  0
 3  1    140 2779292 336304 3531992  0    0     0    28 1323 7087  4  5 67 25  0

参数介绍:

(1).      r,可运行队列的线程数,这些线程都是可运行状态,只不过 CPU 暂时不可用;

(2).      b,被 blocked 的进程数,正在等待 IO 请求;

(3).      in,被处理过的中断数

(4).      cs,系统上正在做上下文切换的数目

(5).      us,用户占用 CPU 的百分比

(6).      sys,内核和中断占用 CPU 的百分比

(7).      wa,所有可运行的线程被 blocked 以后都在等待 IO,这时候 CPU 空闲的百分比

(8).      id,CPU 完全空闲的百分比

举两个现实中的例子来实际分析一下:

$ 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
 4  0    140 2915476 341288 3951700  0    0     0     0 1057  523 19 81  0  0  0
 4  0    140 2915724 341296 3951700  0    0     0     0 1048  546 19 81  0  0  0
 4  0    140 2915848 341296 3951700  0    0     0     0 1044  514 18 82  0  0  0
 4  0    140 2915848 341296 3951700  0    0     0    24 1044  564 20 80  0  0  0
 4  0    140 2915848 341296 3951700  0    0     0     0 1060  546 18 82  0  0  0

从上面的数据可以看出几点:

(1).      interrupts(in)非常高,context switch(cs)比较低,说明这个 CPU 一直在不停的请求资源;

(2).      user time(us)一直保持在 80% 以上,而且上下文切换较低(cs),说明某个进程可能一直霸占着 CPU;

精彩图集

赞助商链接