CPU占有率

CPU占有率

指标细分

CPU使用率从以下3个方面监控:

1、具体进程的CPU占有率及其随时间的变化规律(纵向对比)。

       不能超过特定数值或百分比。

2、各CPU独立内核CPU占有率分配情况(横向对比)。

       横向分配均匀。

查看CPU核心的运行情况

主要有sarmpstatvmstattop

其中,top消耗资源较多,不适合在性能期间持续运行。

mpstat可以查看各个CPU核心的负载情况,可以设定刷新时间和次数。比较适合。

sar

linux198:~ # sar 1 3

Linux 2.6.16.46-0.12-smp (linux198) 07/26/12

 

18:03:41          CPU     %user     %nice   %system   %iowait     %idle

18:03:42          all     14.76      0.00      4.09      0.00     81.14

18:03:43          all     13.95      0.00      1.99      0.25     83.81

18:03:44          all      9.31      0.00      5.58      1.36     83.75

Average:          all     12.67      0.00      3.89      0.54     82.90

mpstat

linux39:~ # mpstat -P ALL 3 4

Linux 2.6.16.46-0.12-smp (linux39)    07/26/12

15:35:37     CPU   %user   %nice  %sys  %iowait  %irq  %soft   %steal   %idle    intr/s

15:35:40     all    2.24    0.00    1.29    0.04    0.04    1.41    0.00   94.97   7645.70

15:35:40       0    0.33    0.00    0.33    0.00    0.00    0.00    0.00   99.34      0.00

15:35:40       1    1.66    0.00    1.32    0.00    0.00    0.99    0.00   96.36   1527.81

15:35:40       2    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.34      5.96

15:35:40       3    6.62    0.00    2.32    0.00    0.00    4.30    0.00   86.75   2905.63

15:35:40       4    0.33    0.00    0.66    0.00    0.00    0.00    0.00   98.68      0.00

15:35:40       5    0.66    0.00    0.33    0.66    0.00    0.33    0.00   97.68    109.27

15:35:40       6    8.28    0.00    5.63    0.00    0.00    5.96    0.00   80.46   2807.95

15:35:40       7    0.33    0.00    0.33    0.00    0.00    0.00    0.00   98.68    289.40

vmstat

linux198:~ # vmstat 1 3

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

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

2  0  4499660 10534364  29408 1725604  0  1  12  14   1    3     23  5 72  0  0

3  0  4499660 10549164  29408 1715324  0  0  0   48  2847  12769 29  12 59  0  0

1  0  4499660 10549500  29408 1715324  0  0  0   0   2157  12800 16  3 81  0  0

  Procs

       r: The number of processes waiting for run time.load average

  CPU

       These are percentages of total CPU time.

       us: Time spent running non-kernel code. (user time, including nice time)

       sy: Time spent running kernel code. (system time)

       id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.

       wa: Time spent waiting for IO. Prior to Linux 2.5.41, shown as zero.

       st: Time spent in involuntary wait. Prior to Linux 2.6.11, shown as zero.

top

分析%usr %sys %wio的情况,

 

%usr是指CPU用于执行应用程序百分比,

%sys是指CPU应用执行系统程序(通常是操作系统的系统调用)的百分比,

%wio是指CPU在等待IO的百分比。

 

通常情况下,%sys%wio都不应该太高,否则就说明应用程序设计不合理,需要分析原因。

 

完成同样功能的应用程序,其CPU占用率应该大致相等,否则说明系统负荷分配不均匀。

对于多CPU的系统,各CPU的占用率也应该大致相等,否则说明系统对CPU资源的使用不均衡,需要优化配置。

总的CPU平均占用率不应该太高,如超过90%,否则说明可能系统性能已经受限于CPU资源。

 

查看进程的CPU运行情况

ps aux

USER  PID %CPU %MEM  VSZ   RSS TTY  STAT  START   TIME COMMAND

root     1  0.0  0.0       780    76  ?      S    Jul13   0:09 init [3]      

root     2  0.0  0.0       0      0   ?      S    Jul13   0:00 [migration/0]

root     3  0.0  0.0       0      0   ?      SN   Jul13   0:00 [ksoftirqd/0]

root     4  0.0  0.0       0      0   ?      S    Jul13   0:00 [migration/1]

root     5  0.0  0.0       0      0   ?      SN   Jul13   0:00 [ksoftirqd/1]

root     6  0.0  0.0       0      0   ?      S    Jul13   0:00 [migration/2]

root     7  0.0  0.0       0      0   ?      SN   Jul13   0:00 [ksoftirqd/2]

linux上进程有5种状态:
1.
运行(正在运行或在运行队列中等待
)
2.
中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号
)
3.
不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生
)
4.
僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放
)
5.
停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行
)

ps工具标识进程的5种状态码:
D
不可中断
uninterruptible sleep (usually IO)
R
运行
runnable (on run queue)
S
中断
sleeping
T
停止
traced or stopped
Z
僵死 a defunct ("zombie") process

: 其它状态还包括W(无驻留页), <(高优先级进程), N(低优先级进程), L(内存锁页).

 

性能测试关注指标及查看命令

性能测试期间,不能有大量僵死进程。

完成同样功能的进程,CPU占有率相近。

关键进程运行状态正常,CPU占有率正常。是否需要特定进程的实时CPU占有率?个人认为不需要,因为,端到端场景中,往往需要多个进程之间协作,关心特定进程的占有率意义不大,关心全部进程占有率工作量太大且无明显意义。只要保证进程状态正常,CPU整体占有率合适且各内核占有率均衡即可。

所以,命令上选择:mpstatps aux

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值