性能测试经验总结
1.要有信心
2.要有稳定,干净的环境,要停掉服务器上不必要的进程和服务
3.要在检查资源是否正常释放了,
内存是否存在泄漏,内存的不断增长,也会影响请求的相应时间
数据库连接是否在使用后得到释放.
可以查看对象的分配状况
要检查查询的时候是将所有的数据查出来了还是只查了一页数据
4.连接池的配置,可以分配足够初始连接,同时配置没有连接时的等待时间,要保证始终是取到连接的
免得测出的是假相.
给出一个配置的例子
<bean id="dataSource" class="com.zte.platform.db.FolDataSource"
destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value=""/>
<property name="username" value=""/>
<property name="password" value=""/>
<property name="initialSize" value="50" />
<property name="maxActive" value="200" />
<property name="maxWait" value="-1"/>
<property name="maxIdle" value="100"/>
<property name="removeAbandoned" value="true"/>
<property name="removeAbandonedTimeout" value="30000"/>
<property name="logAbandoned" value="true"/>
</bean>
5 要用profile工具,判断在多并发情况下,时间的分配状况,抓住主要矛盾,解决最影响性能的地方
6.服务器需要配置好,对内存和线程都需要配置.
tomcat配置
<Connector
port="8088" maxHttpHeaderSize="8192"
maxThreads="100" minSpareThreads="100" maxSpareThreads="450"
enableLookups="false" redirectPort="8443" acceptCount="300"
connectionTimeout="20000" disableUploadTimeout="true" />
内存配置:
这次测试只配置了java vm, -Xms1024M -Xmx1024M
有人推荐这样配置:
JVM_ARGS= -Xms1408M -Xmx1408M -XX:MaxPermSize=96M -XX:NewSize=500M -XX:MaxNewSize=500M -Xss128k -XX:+UseConcMarkSweepGC -XX:+UseParNewGC
7.测试脚本中不能带session标识,如http://..../app/perftest.jsp;jsessionid=D68FC8BDDB954F33AD2626D67553EC8E
需要去掉 ;jsessionid=D68FC8BDDB954F33AD2626D67553EC8E ,因为带sessionid会导致测试结果是多个线程访问一个用户的会话.
实际应用中是一个用户一个会话一个线程
8 日志分析,分析日志中出现的异常,异常发生的时候,往往性能会降低,也会引发失败事务.
9. 和其他系统集成了,要先和其他系统分开进行测试,达标一个再集成进来,将问题局部化定位.
10.最好调优人员学会使用 loadrunner测试工具,先自己使用loadrunner测试通过再给测试人员,提高效率
文章来源:
http://stocknewbie.bokee.com/viewdiary.17160571.html
posted on 2009-05-01 10:52
huohuo 阅读(115)
评论(0) 编辑 收藏