我已經構建了一個無狀態的java servlet web應用程序,並且要求每秒接受至少5000個事務(使用150個併發線程)。我將ehcache與SQL Server 2005一起使用,以避免寫入慢速硬盤。Tomcat org.apache.catalina.connector.requestfacade.getsession()佔用44.7%以上的CPU資源
在性能測試中(使用Jmeter 150個線程),我只設法每秒獲得大約2800個事務(不到預期的一半)。當我走JVisualVM內採樣,我注意到:
org.apache.catalina.connector.requestfacade.getsession() <-- take more than 44.7% of CPU time
任何想法,什麼是requestfacade.getsession()做的,是有辦法加快步伐?雖然我必須優化我的代碼,但我仍然需要弄清楚上面的行每秒5000甚至是不可能的。
Tomcat的CONF:
-single Tomcat實例(6.0.23) - 使用Connectir執行器時,用150 maxThread
服務器CONF:
-Windows 2008
-xeon四核
-8GB RAM
-1TB RAID 5 HDD
任何幫助是必須的感謝!
如果你的servlet是真正的無狀態的,爲什麼它訪問會話? – millhouse
@millhouse你能通過這個答案嗎?那麼我可以接受它作爲答案 – Reusable