我已经构建了一个无状态的java servlet Web应用程序,并且要求每秒至少接受5000个事务(使用150个并发线程)。我正在使用ehcache和SQL server 2005来避免写入慢速硬盘。
在性能测试中(使用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 executor,150 maxThread
服务器配置:
-Windows 2008
-xeon quad core
-8GB ram
-1TB raid 5 HDD
必须得到任何帮助!
答案 0 :(得分:1)
如果您的servlet是真正的无状态,为什么它会访问会话?
: - )
答案 1 :(得分:0)
如果您是以无状态方式工作,请参阅默认情况下配置tomcat以不创建会话。
此外,如果您使用的是JSP,请确保将其设置为不创建会话。