低数量用户的Tomcat吞吐量限制

时间:2012-05-28 12:18:38

标签: tomcat throughput

我们有一个webapp服务于我们的服务请求。我们让它在Tomcat 7服务器上运行。如下所述,由于我们可以创建的最基本的Servlet具有类似的结果,因此不需要更多细节。

我们使用具有不同数量的并发线程的jmeter运行负载测试,对我们的服务请求一分钟。根据结果​​,我们生成一些图表,其中包括平均响应时间与并发线程,以及每秒请求数与并发线程数。

在我们的测试中,大约有10个并发线程,我们发现应用程序管理的吞吐量有限制。从该线程数开始,平均响应时间增加,每秒请求数稳定。

我们测试了对应用程序的一些更改,甚至删除了所有应用程序逻辑并返回静态响应。并且对一个什么都不做的基本Servlet运行相同的测试,我们得到了类似的结果:更好的平均响应时间和吞吐量值,但是在测试中大约10个并发线程达到了限制。

我们还使用Apache Benchmark进行了类似的测试,以解决测试工具的问题。

测试在2服务器池中运行。当在本地计算机上运行时,它们给出了类似的结果,但是在大约5个并发线程处达到了吞吐量限制。

这是吞吐量图表。请注意,每行的值都不重要(例如:某些行删除了数据库访问,甚至大多数应用程序逻辑,因此它们花费的时间更少)。

Throughput chart

我们想要了解的是吞吐量限制的来源以及我们可以采取哪些措施来改进它。

谢谢, 乔治

PS:我会添加图片而不仅仅是链接,但看起来我没有足够的声誉:(

2 个答案:

答案 0 :(得分:1)

将jvm调整到最佳设置后,限制将下降到您运行的硬件。线程需要cpu来运行并且添加更多线程只有在其他线程被IO等事件阻止执行时才有用,即使容器线程增加了开销。达到该限制后,您需要添加更多硬件。

答案 1 :(得分:0)

tomcat性能问题的一个主要原因是默认的jvm设置,使用-Xmx参数增加分配给运行tomcat的JVM的内存量。

-Xmx512m将允许最多512MB分配给堆。

此外,在进行更改之前,请检查从tomcat默认页面>分配给tomcat的内存。状态

并在增加jvm堆大小后检查状态。

使用-XX增加perm gen空间:PermSize和-XX:MaxPermSize。

有关详细信息,请查看此page