十五年测试老手,长期负责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#^S0

51Testing软件测试网*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)yQ S_~0

51Testing软件测试网0d7Flo}R$oG sO

这样得到的是某个时刻的内存信息,它并不能反应应用程序的真实情况,一般而言,我们应该持续测试一段时间,摒弃首尾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} VW0

top -b -n1|grep apache|awk '{mem+=$6}END{print mem/1024}'>>mem.log51Testing软件测试网 o;Qj BD6L%V k C

sleep(10)

G)it;DI-sr3s0

done51Testing软件测试网&KZN}+[6z(N

51Testing软件测试网Aw x8L9YX[5Z;O

开始压力的时候,启动脚本,压力结束时结束脚本。通过所得文件mem.log分析应用内存占用。51Testing软件测试网uG l&F2H

di3in*N(F"D#l0

顺便说下自己的分析思想(不对请指正):

v`%n` ic"lq0

1 为什么要持续一段时间呢?

%a$Q"D.dB_ L B9^ wW0

因为对于内存泄漏,应用程序不是一下就泄漏得让你明显看出来,往往需要一段时间的积累甚至更长时间才爆露问题,在同等压力下,如果记录的内存随着时间不断增加,则表明存在内存泄漏。另外,加压和停止也有一个过程,我们要取中间段数据做平均值计算。51Testing软件测试网EO!?"a r!V%\5iB

2 压力测试要执行多次?51Testing软件测试网#rq1Tsx

其他条件同样的背景下,采用不同的压力,如并发数10、20、50、100,一直到系统瓶颈为止,然后把每次得到的内存、CPU、TPS、成功率等数据做成直角坐标图,例如x轴是并发数,y轴是内存、CPU、TPS等,分析图中转折点变化,或者TPS从上升变为趋于水平线等,得到系统指标。

T K5bC/]A1r0

TAG: 性能测试

 

评分:0

我来说两句

Open Toolbar