性能測試經(jīng)驗總結(jié)
1.要有信心
2.要有穩(wěn)定,干凈的環(huán)境,要停掉服務(wù)器上不必要的進程和服務(wù)
3.要在檢查資源是否正常釋放了,
內(nèi)存是否存在泄漏,內(nèi)存的不斷增長,也會影響請求的相應(yīng)時間
數(shù)據(jù)庫連接是否在使用后得到釋放.
可以查看對象的分配狀況
要檢查查詢的時候是將所有的數(shù)據(jù)查出來了還是只查了一頁數(shù)據(jù)
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工具,判斷在多并發(fā)情況下,時間的分配狀況,抓住主要矛盾,解決最影響性能的地方
6.服務(wù)器需要配置好,對內(nèi)存和線程都需要配置.
tomcat配置
<Connector
port="8088" maxHttpHeaderSize="8192"
maxThreads="100" minSpareThreads="100" maxSpareThreads="450"
enableLookups="false" redirectPort="8443" acceptCount="300"
connectionTimeout="20000" disableUploadTimeout="true" />
內(nèi)存配置:
這次測試只配置了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會導(dǎo)致測試結(jié)果是多個線程訪問一個用戶的會話.
實際應(yīng)用中是一個用戶一個會話一個線程
8 日志分析,分析日志中出現(xiàn)的異常,異常發(fā)生的時候,往往性能會降低,也會引發(fā)失敗事務(wù).
9. 和其他系統(tǒng)集成了,要先和其他系統(tǒng)分開進行測試,達標一個再集成進來,將問題局部化定位.
10.最好調(diào)優(yōu)人員學(xué)會使用 loadrunner測試工具,先自己使用loadrunner測試通過再給測試人員,提高效率
文章來源:http://stocknewbie.bokee.com/viewdiary.17160571.html