0

我已经构建了一个无状态的 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 配置:

- 单个 Tomcat 实例 (6.0.23) - 使用 Connectir 执行器,最大线程数为 150

服务器配置:

-Windows 2008

-至强四核

-8GB 内存

-1TB 突袭 5 硬盘

任何帮助都必须感谢!

4

2 回答 2

1

如果您的 servlet 真的是无状态的,为什么它要访问会话?

:-)

于 2012-01-10T22:17:01.843 回答
0

如果您以无状态方式工作,请参阅配置 tomcat 以默认不创建会话。

此外,如果您使用 JSP,请确保将其设置为不创建会话。

于 2011-10-19T10:18:13.510 回答