软件测试修炼之路 A Tester

性能测试监控

2017-03-10
Dex

常见性能测试监控工具

一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。

单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。

系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间

QPS(TPS):每秒钟request/事务 数量

并发数: 系统同时处理的request/事务数

响应时间: 一般取平均响应时间

QPS(TPS)= 并发数/平均响应时间

无论有无思考时间(T_think),测试所得的TPS值和并发虚拟用户数(U_concurrent)、Loadrunner读取的交易响应时间(T_response)之间有以下关系(稳定运行情况下):

TPS=U_concurrent / (T_response+T_think)。

http://www.ha97.com/5095.html

服务器监控

top

cpu状态信息,具体属性说明如下:

5.9%us — 用户空间占用CPU的百分比。
3.4% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
90.4% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.2% si — 软中断(Software Interrupts)占用CPU的百分比

列表内容解释:

  PID:进程的ID
  USER:进程所有者
  PR:进程的优先级别,越小越优先被执行
  NInice:值
  VIRT:进程占用的虚拟内存
  RES:进程占用的物理内存
  SHR:进程使用的共享内存
  S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
  %CPU:进程占用CPU的使用率
  %MEM:进程使用的物理内存和总内存的百分比
  TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
  COMMAND:进程启动命令名称

  top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。

内部命令如下:

命令格式:

top [-] [d] [p] [q] [c] [C] [S]    [n]

参数说明:

d:  指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p:  通过指定监控进程ID来仅仅监控某个进程的状态。
q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S: 指定累计模式
s : 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i:  使top不显示任何闲置或者僵死进程。
c:  显示整个命令行而不只是显示命令名

top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。

常用交互命令:

<空格>:立刻刷新。
P:根据CPU使用大小进行排序。
T:根据时间、累计时间排序。
q:退出top命令。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c:切换显示命令名称和完整命令行。
M:根据使用内存大小进行排序。
W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

可以看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,它的缺点是会消耗很多系统资源。

使用top命令可以监视指定用户,缺省情况是监视所有用户的进程。如果想查看指定用户的情况,在终端中按“U”键,然后输入用户名,系统就会切换为指定用户的进程运行界面。

iostat

iostat -x -d -k  1

netstat

vmstat

free

free命令用来显示内存的使用情况,使用权限是所有用户。

格式:

free [-b -k -m] [-o] [-s delay] [-t] [-V]

主要参数:

-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
-t:显示内存总和列。
-o:不显示缓冲区调节列。

free命令是用来查看内存使用情况的主要命令。和top命令相比,它的优点是使用简单,并且只占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作一个方便实时监控器。

#free -b -s5

使用这个命令后终端会连续不断地报告内存使用情况(以字节为单位),每5秒更新一次。

ps

  如下例所示:

  $ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'  其中rsz是是实际内存
  $ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep oracle |  sort -nrk5

  其中rsz为实际内存,上例实现按内存排序,由大到小

pmap

  可以根据进程查看进程相关信息占用的内存情况,(进程号可以通过ps查看)如下所示:

  $ pmap -d 14596

mobaxterm

nmon

下载nmon压缩包,解压,并给对应服务器版本的nmon文件执行权限:chmod +x nmon_x86_64_centos6

执行nmon监控:

./nmon_x86_64_centos6 -s2 -c320 -f -m report/

参数解释:

  • -s2 每 2 秒采集一次数据。
  • -c320 采集 320 次,即为采集十分四十秒钟的数据。
  • -f 生成的数据文件名中包含文件创建的时间。
  • -m 生成的数据文件的存放目录。
  • 这样就会生成一个 nmon 文件,并每2秒更新一次,直到十分钟后。
  • 生成的文件名如: _090824_1306.nmon ,”” 是这台主机的主机名。
  • nmon -h查看更多帮助信息。

把nmon结果文件导入到windowss系统中,使用nmon analyser工具转换成excel文件,即可进行分析;

Jmeter插件监控

应用服务器监控

jconsole

jvisualvm

数据库监控

web服务器监控

未完待续。。。


Comments