【发布时间】:2012-06-02 19:34:24
【问题描述】:
我们有一个 webapp 为我们的一项服务的请求提供服务。我们让它在 Tomcat 7 服务器上运行。如下所述,不需要更多细节,因为我们可以创建的最基本的 Servlet 具有相似的结果。
我们使用 jmeter 运行负载测试,其中不同数量的并发线程向我们的服务发出请求一分钟。根据结果,我们生成了一些图表,其中包含平均响应时间与并发线程,以及每秒请求数与并发线程。
在我们的测试中有大约 10 个并发线程时,我们发现应用程序管理的吞吐量存在限制。从该线程数开始,平均响应时间增加,每秒请求数稳定。
我们已经对我们的应用程序进行了多项更改测试,甚至删除了所有应用程序逻辑并返回静态响应。并且还对一个什么都不做的基本 Servlet 运行相同的测试,我们得到了类似的结果:平均响应时间和吞吐量值要好得多,但在测试中达到了大约 10 个并发线程的限制。
我们还使用 Apache Benchmark 运行了类似的测试,以消除测试工具的问题。
测试在 2 个服务器池中运行。在本地计算机上运行时,它们给出了类似的结果,但在大约 5 个并发线程时达到了吞吐量限制。
这是吞吐量图表。请注意,每一行的值并不重要(例如:有些已删除 db 访问权限,甚至大多数应用程序逻辑都需要更少的时间)。
我们想了解的是吞吐量限制来自哪里以及我们可以做些什么来改进它。
谢谢, 豪尔赫
PS:我会添加图片而不仅仅是一个链接,但看起来我没有足够的声誉:(
【问题讨论】:
标签: tomcat throughput