Tomcat极限性能测试(二)
基础环境
Linux操作系统,128G内存,40核心数CPU
测试代码
@RequestMapping(value = "/test/tomcat", method = RequestMethod.GET) @ResponseBody public void testTomcat() { int j = 0; for (int i = 0; i < 2000; i++) { j = j + i; } }
tomcat配置
tomcat默认配置
测试
测试1:
CPU使用率: JVM线程情况: 从JVM线程情况中,我们可以发现,Tomcat默认启动10个线程。由于客户端只开启了一个线程,途中绿色部分标识线程的运行状态。我们从中可以发现,绿色部分在10个线程中是交替出现的。
测试2:
CPU使用率:
JVM线程情况: 从JVM的线程状态中,我们发现同一时刻有2个线程处于运行状态。因为我们开启了两个客户端连接请求
测试3:
CPU使用率:
JVM线程情况:
从JVM的线程状态中,我们发现同一时刻有4个线程处于运行状态
测试4:
CPU使用率:
JVM线程情况:
从JVM的线程状态中,我们发现同一时刻有8个线程处于运行状态
测试5:
CPU使用率:
JVM线程情况:
从JVM的线程状态中,我们发现同一时刻有16个线程处于运行状态
测试6:
CPU使用率:
JVM线程情况: 当线程数开到了32个的时候,我们发现JVM中有大量线程处于空闲时间,CPU没有用满。 经过研究发现,Tomcat内部使用的阻塞队列的性能瓶颈所致
总结
tomcat的性能随着线程数的增加而增加,当QPS达到10w左右的时候,其内部的处理队列性能存在瓶颈,在压测,QPS已经上不去了。所以我们在开发的时候,基本上不用担心Tomcat的性能问题。在硬件资源充足的情况下,tomcat基本上满足服务。如果一个不够,就在来一个
上一篇:
Java架构师技术进阶路线图
下一篇:
计算机网络之HTTP客户端请求消息