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