十五年测试老手,长期负责WEB\APP 项目测试,目前主要负责团队管理工作。
web性能测试的关键指标
上一篇 /
下一篇 2011-07-31 20:17:44
/ 个人分类:性能测试
性能测试的关键指标51Testing软件测试网%_hI?s0GF
内存统计命令 51Testing软件测试网M7FcBJfm#ZyL
top -b -n1|grep apache|awk '{mem+=$6}END{print mem/1024}'51Testing软件测试网)V'r#e.f T lP Z5P-^]
统计CPU51Testing软件测试网%sT6I/TVX
top -b -n1|grep apache|awk '{cpu+=$9}END{print cpu}'>>cpu.log (百分比)51Testing软件测试网 ?^0`7X-w]'_'_.s
TPS 、平均响应时间、success/total、吞吐量等51Testing软件测试网:jsL6I#sss
另外关注文件描述符和磁盘I/O (iostat) \网络情况 (netstat)51Testing软件测试网0wJc&G:pYd#wC
4I_B4n-R7N.s#^S051Testing软件测试网*V!l7E/P+s}']9}5k*bo
8G?l!\9}O'S w0命令说明:用top导出信息--grep找出apache的进程信息--将找出的信息的第6列相加(在我的系统里第6列是RES:进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA)--再除以1024得到MB单位内存。
A)yQS_~051Testing软件测试网0d7Flo}R$o GsO
这样得到的是某个时刻的内存信息,它并不能反应应用程序的真实情况,一般而言,我们应该持续测试一段时间,摒弃首尾ramp up和ramp down的数据(因为并发的用户不是一下达到要求的值,都有一个过程)。所以每隔一段时间,例如10s记录一次,持续压力几个小时后,计算平均值。51Testing软件测试网 gK'N`e:Z.`%|L
:ris@7Y0$ cat memstat.sh 51Testing软件测试网8AT&t"_,lh6b1c
#!/bin/sh51Testing软件测试网
oUDK;l!V
while [ 1 ]; do
4an9}VW0top -b -n1|grep apache|awk '{mem+=$6}END{print mem/1024}'>>mem.log51Testing软件测试网 o;Qj BD6L%V k C
sleep(10)
G)it;DI-sr3s0done51Testing软件测试网&KZN}+[6z(N
51Testing软件测试网Aw x8L9YX[5Z;O
开始压力的时候,启动脚本,压力结束时结束脚本。通过所得文件mem.log分析应用内存占用。51Testing软件测试网uG l&F2H
di3in*N(F"D#l0顺便说下自己的分析思想(不对请指正):
v`%n`
ic"lq01 为什么要持续一段时间呢?
%a$Q"D.dB_LB9^
wW0因为对于内存泄漏,应用程序不是一下就泄漏得让你明显看出来,往往需要一段时间的积累甚至更长时间才爆露问题,在同等压力下,如果记录的内存随着时间不断增加,则表明存在内存泄漏。另外,加压和停止也有一个过程,我们要取中间段数据做平均值计算。51Testing软件测试网EO!?"a
r!V%\5iB
2 压力测试要执行多次?51Testing软件测试网#rq1Tsx
在其他条件同样的背景下,采用不同的压力,如并发数10、20、50、100,一直到系统瓶颈为止,然后把每次得到的内存、CPU、TPS、成功率等数据做成直角坐标图,例如x轴是并发数,y轴是内存、CPU、TPS等,分析图中转折点变化,或者TPS从上升变为趋于水平线等,得到系统指标。