其神若何,月射寒江。

性能测试基础之监控os

上一篇 / 下一篇  2010-06-04 11:04:27 / 个人分类:性能测试

监控OS

 操作系统的资源监控,是从大的颗粒度来分析系统的性能。通过操作系统

种颗粒度来分析系统,是必不可少的。

1.1.1.1.1           CPU占用率

特点:

如果等待的进程过多,长期超过CPU个数的两倍;

如果空闲时间(cpu id)持续为0并且系统时间(cpu sy)是用户时间的两倍(cpu us)系统则面临着CPU资源的短缺

1.1.1.1.1.1 经验分析

由于多核CPU、多颗CPU的机型逐渐成为主流,因此对于CPU的监控,除了要收集整体的CPU占用率外,还要注意对多核或多颗CPU的状况进行监控。

使用传统的监控命令仅能对CPU的整体使用情况进行统计,例如:Linux/Unix下使用topsarvmstat之类的命令来查看整体占用率。

而对于多核、多颗CPU的状态需要mpstat这样的命令来查看,在实际的性能测试中,这是非常有意义的,整体CPU的占用率似乎正常,例如占用率是40~50%,但实际上分别去查看时,可能发现有近半数的CPU处于100%的忙碌状态,而其它CPU则处于完全的空闲状态,这种情况意味着被测试模块的服务线程/进程配置的不够多,造成服务线程/进程已经处于负担较重的忙碌状态,而性能得不到提升,甚至出现待处理的业务或待处理的消息处于排队状态,当重新配置线程/进程数后,使得更多的CPU得到利用,处理能力得到大幅提升。

除了观察CPU的占用率或空闲率外,对CPU的用户态(User Time)和核心态(System Time)的信息也同样要进行记录和分析,过高的用户态或过高的核心态都意味着不正常的状态,需要根据特定的环境仔细去分析。

 

1.1.1.1.1.2 vmstat

特点:等待进程过多(大于4),空闲CPU太少(少于40

1.)如果在processes中运行的序列(process r)是连续的大于在系统中的CPU的个数表示系统现在运行比较慢,有多数的进程等待CPU.

2.)如果r的输出数大于系统中可用CPU个数的4倍的话,则系统面临着CPU短缺的问题,或者是CPU的速率过低,系统中有多数的进程在等待CPU,造成系统中进程运行过慢.

3.)如果空闲时间(cpu id)持续为0并且系统时间(cpu sy)是用户时间的两倍(cpu us)系统则面临着CPU资源的短缺.

1.1.1.1.1.3 top

可以检查各个进程CPU的占用情况

1.1.1.1.1.4 mpstat

l        命令说明

用途:收集和显示系统中所有逻辑CPU的性能统计信息。特别是用于收集多核CPU信息

语法:mpstat [ { -d | -i | -s | -a } ] [ -w ] [ interval [ count ] ]

描述:mpstat命令收集和显示系统中所有逻辑CPU的性能统计信息。用户既可以定义统计信息显示的次数,也可以定义数据更新的时间间隔。调用mpstat命令时,它显示两部分的统计信息。第一部分显示系统配置,在命令开始执行时以及只要系统配置发生更改时显示。第二部分显示使用率统计数据,每隔一定时间间隔显示,并且只要度量值与上一时间间隔有变化便会重新显示。

l        例子

ash-2.03$ mpstat 2

CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl

 0  24  0  16  269 167 132   0  12   2   0  223   1  0  1 97

 1  24  0  16    5   1 106   1  12   1   0  214   1  2  1 95

CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl

 0 1258  0 599  427 320 261  15  34  15   0 1302   6 11 13 70

 1 1578  0 446   19   1 278  11  35  16   0 1595   8 12 11 69

CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl

 0 1889  0 322  368 261 261  11  39  12   0 1610   4 12  5 78

 1 2742  0 427   19   1 245  11  38  11   0 2259  11  7  3 78

 

 

   监控CPU的各类手段

命令、脚本、程序等

   操作系统命令

topsarvmstat

   应对多核的挑战

mpstat

1.1.1.1.2      Memory情况

特点:防止内存泄漏;

     如果某个进程内存占用很高,而且不断增长,有可能泄漏;

     如果内存的占用率比较高,但是,CPU的占用很低,考虑程序内存占用没有释放

     Java可以考虑监控各个区的情况,fullgc的情况

    

 

l        Top

检查进程占内存大小,进程代码大小,占内存是否一直增长

 

 

l        vmstat

 

      总体和个体的情况:防止内存泄漏的发生

   操作系统内存管理

1.1.1.1.3           IO情况

特点:假如系统的物理内存用光了,您的系统就会跑得慢,但仍能运行;

假如Swap空间用光了,那么系统就会发生错误,报内存溢出。

     如果磁盘性能低,IO的时间很长,导致其他进程阻塞。

 

解决的方法:

增加内存,可以减少swap,提供速度;

增加swap,可以避免内存溢出;

把文件系统挂在不同的盘上,充分利用并行IO,可以提供r/w性能;

更换高性能磁盘控制器

 

诊断方法:

1.1.1.1.3.1 iostat –xtc

iostatI/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。

 

 

l        iostat的语法

iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval [ count ] ]

其中,-c为汇报CPU的使用情况;

-d为汇报磁盘的使用情况;

-k表示每秒按kilobytes字节显示数据;

-t为打印汇报的时间;

-v表示打印出版本信息和用法;

-x device指定要统计的设备名称,默认为所有的设备;

interval指每次统计间隔的时间;count指按照这个时间间隔统计的次数。

l        经验分析

如果磁盘显示长时间的高reads/writes

并且磁盘的percentage busy (%b)也远大于5%

同时average service time (svc_t)也远大于30 milliseconds

   监控IO Wait

 

 

l        例如:

l        Iostat 1

 

  tty       sd6          ssd0         ssd1         nfs1          cpu

tin tout kps tps serv kps tps  serv kps tps serv kps tps serv us sy wt id

  0   2  0  0   0  44  5   9   1  0  89   0  0   0   2 1 1 96

  0 234  0  0   0   8  1   9   0  0   0   0  0   0   8 12 0 79

  0  80  0  0   0  48  6   6   0  0   0   0  0   0  19 30 0 50

  0  80  0  0   0 161 21  31 240 30  74   0  0   0   1 18 2 78

  0  80  0  0   0   0  0   0   0  0   0   0  0   0   0 0 0 100

  0  81  0  0   0  88 10   4   0  0   0   0  0   0   6 9 1 84

  0  80  0  0   0  16  2   6   0  0   0   0  0   0  24 24 0 52

 

设备类型      字段名   说明

终端      设备类型      

      tin   终端输入队列中的字符数

      tout 终端输出队列中的字符数

磁盘      设备类型      

      bps 每秒块数

      tps  每秒事务数

      serv平均服务时间,以毫秒为单位

CPU设备类型      

      us   在用户模式下

      sy   在系统模式下

<

TAG: CPU cpu network Network io

 

评分:0

我来说两句

xiaohanjiang

xiaohanjiang

River.liu又名小寒江。曾经从事多年JAVA软件开发工作,这几年一直从事软件测试工作。多年来,一直致力于软件工程、软件开发、软件测试方面的研究。不喜欢自称高手,不愿意自封资深;科学研究讲究的是务实、实践。真理、真知才是硬道理。茫茫海洋,我只希望我的每个理念能游弋于业界之间。我的思想能在你的脑海中徜徉。

日历

« 2024-03-24  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 39254
  • 日志数: 52
  • 建立时间: 2009-12-15
  • 更新时间: 2011-03-14

RSS订阅