51Testing软件测试网}~:?fC/KApache的压缩项对loadrunner性能测试的影响
!xK6j_ }d"j*YO051Testing软件测试网c"oy5n Y:qIq9sPS:本人在51testing和sina blog上的文章全部为原创,转载请注明出处!!
0p^XeE9i/L051Testing软件测试网eJ1z5@%rU{$\在使用apache做web服务的项目部署中,如果预计服务器带宽会吃紧且没有资源时,可以在部署时会添apache的压缩功能(deflate模块),通过调整压缩级别节省带宽资源。
3rdXot051Testing软件测试网B|d7Js6J前一段时间用loadrunner测试了一个java的项目,设置了apache的压缩功能,在进行性能调优的过程中,发现压缩级别对性能影响很大,特总结一下。
(k/v0cB/~6Y G9w%qVOf(|0W2{h!TQ6R:}l0添加apache压缩的方法:
.D+a~!~{o!h'v0新安装apache在编译时加入对应项(红色字体内容)
L;Y?;`f~qq0例如:# ./configure --prefix=/usr/local/apache --enable-rewrite --enable-so--enable-deflate
CkZJ
Po A+\
LJ0然后make、make install即可
A3Dj*Wr]-^e'x04j"^\de*x0已安装apache则添加mod_deflate模块51Testing软件测试网v*n8XB4?.h5o
例如:# /usr/local/apache2/bin/apxs -i -a -c/root/Desktop/download/httpd-2.0.61/modules/filters/mod_deflate.c51Testing软件测试网9EdK(|
^
注:/root/Desktop/download/httpd-2.0.61/为apache源码文件夹
0N+}]u+I9n#UW
}`051Testing软件测试网q SiVT0v(z进行上步以后,到apache的根目录打开httpd.conf配置文件:
Y~s!^7N
U }_o:v0# vi /usr/local/apache2/conf/httpd.conf
,DR!d:ld/F0查找到行:LoadModule deflate_module modules/mod_deflate.so即代表安装成功51Testing软件测试网l/ibC'K[s/bt!~
*pqH3h2H%S)A3C&l0在httpd.conf文件中加入如下标签段:
Ke;Fl"x*SM?0<ifmodule mod_deflate.c>51Testing软件测试网M g0k}*\pV8V
DeflateCompressionLevel 551Testing软件测试网iuVdS7CL
SetOutputFilter DEFLATE
4x4Bt d4D)P^&E"d0#DeflateFilterNote Input instream
8[Ne
m#E$cF.s+T0#DeflateFilterNote Output outstream
(o#{Q1fX0#DeflateFilterNote Ratio ratio
;n/Q2P~Wsxh^0#LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
j;bi }N)_$_{g'N0#CustomLog logs/deflate_log.log deflate51Testing软件测试网 ]O+^ rg#t;mG)X
</ifmodule>51Testing软件测试网Q2i;C4@"EF9_:S$N U
其中:51Testing软件测试网]tMJ9j%N,Ar
DeflateCompressionLevel 是压缩级别,级别越高,压缩比越大51Testing软件测试网4^'rpE
Ky$D
把那些注释(带"#"的行)的注释标识去掉,则压缩时会打出log,类似:
@a[tNgY@0"GET /index.html HTTP/1.1"89543/536212 (17%)
tTX#br#J%U5{Ox0其中,"536212"是压缩前的数据大小,"89543"是压缩后的大小,"17%"是压缩比。
[BnXZ i0+~L$_'sB&GM#Pq'Q^0 51Testing软件测试网1cS;gkVrr
51Testing软件测试网unY ~N"K0D我录制的一个程序是浏览一个动态页面,页面会从DB中根据参数取出一部分数据集,并显示出来,脚本录制很简单。
? lAse:jO:ioi0Mc~)h!A&t+Se0测试场景设置如下(使用1台做场景监视,3台服务器做负载生成):
q+@+^Tm1d2d0方案一:
w)p.NG]qm0设置压缩比为4,进行3000负载的测试;每秒增加10用户,增加到3000后持续运行5分钟
8I0L(Q0t'AE y0方案二:
PB_,f!U)c0设置压缩比为0,进行3000负载的测试,在测试半程中调整压缩比为3;每秒增加10用户,增加到3000后持续运行5分钟
$eS.[|$U-u@\0$tFaN&JB0测试结果如下(全部是平均值):
hM ]6f^;y
D9f0 事务响应时间(S) 每秒点击数 每秒HTTP请求响应数 每秒连接数
|mGl }Z)E+G4N*X0方案一 3.007 8905.869 8905.864 486.96 51Testing软件测试网Q1dZ|-xS_1`5K%g
方案二 8.264 7147.353 7147.316 359.86
#wO\[0v0R;v`L0e!PQ0方案 事务运行总数 事务失败数 事务通过率 事务执行速率(TPS)51Testing软件测试网$k1?7\RW3Ar `[
方案一 62357 3126 94.98% 138.467个/秒51Testing软件测试网yLMEs
|:lZJ_:_
方案二 54776 361 99.34% 111.735个/秒
:b]%Y4b{*i'Hh0f'IH,[)qq'b7f0从方案一的测试结果发现压缩级别为4时,事务通过率较低,系统不稳定;
v){y$b(D"z5x@0s0从方案二的测试结果分析(错误产生和vuser加载的关联图,如图)中发现,在压缩级别从0调整到3时,事务处理速度(TPS)从130下降到70,开始发生错误;51Testing软件测试网 F` y;kP
主要错误为:lr_27791:找不到服务器”XXXXXX.XXX.com.cn”
)_#L$n h5Y+x5V9h,oS051Testing软件测试网3w
sAO
R.x"R2个方案的测试结果说明,采用较高的压缩级别,会极大影响服务器的性能。51Testing软件测试网L~(j(xWH
Mwf8V~:?(r A%Q0
1}#A.g
bsGm0