cclover 发表于 2008-7-17 02:04:54

性能测试,如何设置LR的环境?

<P>刚学性能测试3个多月,最近测试碰到一个问题,系统搭建好了(JBOSS+oracle),进行100并发的测试,发现入账时间居然为12S。优化了数据库,但发现还是一样。而且响应时间的最小的0.5s,最大却有20S。监控系统,发现应用机和数据库的资源都很正常,没有出现很大的压力。但为什么系统这么慢呢? </P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>后来我看到网上pacing对结果的影响,设置了pacing = 10S,也就是每个迭代之间有10s的间隔,而其他设置都不变。在进行100并发的测试,响应时间平均就为2.5s了。看了相关资料,因为LR是记录发送请求到服务器响应的时间,可能发送请求后,程序队列达到了最大请求,这个请求无法进入程序队列,而是在操作系统中等待,等待进入程序的队列,但LR已经开始计时,所以相比直接进入程序队列的和直接被处理的请求,他的系统的响应时间变长了,而后面来的请求也一样,这个时候这个个系统平均响应时间就很大了,实际也就失去了意义。</P>
<P>&nbsp;</P>
<P>&nbsp;如果不明白我的意思可以看这个:</P>
<P>&nbsp;<A href="http://www.51testing.com/html/8/1502.html" target=_blank>http://www.51testing.com/html/8/1502.html</A></P>
<P>&nbsp;<A href="http://www.blogjava.net/xingcyx/archive/2006/12/28/90498.html" target=_blank>http://www.blogjava.net/xingcyx/archive/2006/12/28/90498.html</A> </P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>那到底怎么做?是先调整PACING还是先优化系统?</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>&nbsp;1:如果不设置PACING,去优化系统,也许可以解决问题,但是如果系统优化到最优了,但还是很慢!这个时候我们或许会说,嗯,系统无法满足100并发的情况,请求速度太快,系统每秒无法响应这么多个请求,所以响应时间长。然后减少并发(实际减少并发也是减少每秒发送请求的数量,即请求速度),到50个并发,满足了。是否就说系统只能支持50并发? </P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>2:但如果我去调整了PACING设置,减慢了发送请求速度,使得可以在规定的时间内处理完请求。这样没有太多的请求在等待,响应速度也就提高了,那么我们是否就能说系统支持100并发? </P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>3:最后的就是先设置PACING,然后在看是否满足,如果还不满足,在去调整系统性能或是降低并发。</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>我们应该选择那种方法呢?这里PACING完全影响了测试的结果,我们到底应该怎么去定位这个系统性能是支持50还是100呢?到底那种设置才是真正反映100并发的情况呢? 我们如何关注这个间隔时间(请求速度)对性能的影响呢?</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>从客户测试的角度看,我不管你请求速度多快,不管等待时间,我只看响应时间大小!这个没有错。但如果从服务器角度看,我不管你等待时间,传送时间,我只管从程序队列到我服务器处理的时间。这个也没错,设置可以说这才是软件实际的性能。但我们性能测试又不能脱离客户端!那我们究竟要关注那个呢?到底那个性能才是我们关注的呢? </P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P>很困惑啊,请高手指教!</P>

[ 本帖最后由 cclover 于 2008-7-17 02:10 编辑 ]
页: [1]
查看完整版本: 性能测试,如何设置LR的环境?