????? 性能往往出現(xiàn)在你做容易忽略的地方!
????? 最近開發(fā)了一個WML服務(wù)端,部署在tomcat6.0,默認(rèn)內(nèi)存64M。做壓力測試,用LR每秒跑50個用戶并發(fā),結(jié)果2小時后內(nèi)存的永久區(qū)就滿了,且不回收,查程序,感覺任何可以優(yōu)化的地方都已經(jīng)優(yōu)化了,最后窮盡的辦法,還是老樣子。最好還是感覺我們公司的測試人員NB,發(fā)現(xiàn)java.util.concurrent.ConcurrentHashMap$Segment的對象越來越多,經(jīng)網(wǎng)上資料分析,極有可能是session堆積造成的。這個時候才恍然大悟,因為壓力測試的時候,都沒模擬新的用戶,每次訪問服務(wù)端都會創(chuàng)建一個新的session對象,保存在服務(wù)器端,如果session有效期不過期,那么就一直保存著,知道內(nèi)存耗盡。只要知道問題的所在,就比較容易解決問題了。我們都知道session的過期時間是在web.wml里面設(shè)置,原來我設(shè)置了一天,現(xiàn)在改成30分鐘,不再出現(xiàn)內(nèi)容消耗的情況了,謝天謝地謝測試。
<session-config>
??<session-timeout>30</session-timeout>
?</session-config>
????? 得出的結(jié)論是,如果想保存session時間久一點,那么設(shè)計tomcat的內(nèi)存大一點,防止請求量的情況出現(xiàn)內(nèi)存耗盡。如果session在測試中用到不多或者失效性不強,沒有必要加內(nèi)容,直接修改wen.xml即可。
???? 附上網(wǎng)上一個“專家”的分析,http://ddupnow.javaeye.com/blog/621619
posted on 2010-04-16 15:04
蔣家狂潮 閱讀(2429)
評論(3) 編輯 收藏 所屬分類:
JWeb