spring boot下Servlet容器Tomcat和Undertow性能对比


测试目的:

Tomcat和Undertow的性能做对比,确定生产环境调优参数

测试工具

压测工具:jmeter
jvm监控工具:visualvm

测试过程:

  1. 设置jmeter的线程组参数,设置如下:100个线程,每个线程发起100个请求,线程启动间隔是1秒
    jmeter线程组参数设置
  2. 设置请求参数,这里设置的是http,post请求。
    jmeter的http request参数设置
  3. 测试tomcat下的性能表现
    viusalVm监控结果:
    tomcat下的性能监控图
    jmeter聚合报告:
    jmeter聚合报告-tomcat
  4. 测试Undertow下的性能表现
    undertow下的性能监控图
    jmeter聚合报告:
    jmeter聚合报告-undertow

测试结果

当服务启动后有监控图对比

servlet容器 使用内存(最大) 线程数
tomcat 65M 122
undertow 47M 15

jmeter压测过程中监控结果对比

servlet容器 使用内存(最大) 线程数
tomcat 148M 19
undertow 127M 47

jmeter报告的对比

使用servlet容器 samples Average Media 90%Line 95%Line 99%Line Min Max Error% Throughput KB/Sec
tomcat 10000 166 122 247 359 1390 2 3982 0.00% 467.3/sec 115.1
undertow 10000 151 113 270 375 788 3 2324 0.00% 545.4/sec 132.6

结论
在相同资源使用量的情况下undertow有较好的吞吐量和较低的访问时延,所以生产环境
以上只是粗略的测试,也不够专业,敬请谅解,但大致能对比出结果。如果大家有更好的测试方法,欢迎交流,可邮件联系。

原文地址

猜你喜欢

转载自blog.csdn.net/shog808/article/details/79162871