测试目的:

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容器使用内存(最大)线程数
tomcat65M122
undertow47M15

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

servlet容器使用内存(最大)线程数
tomcat148M19
undertow127M47

jmeter报告的对比

使用servlet容器samplesAverageMedia90%Line95%Line99%LineMinMaxError%ThroughputKB/Sec
tomcat100001661222473591390239820.00%467.3/sec115.1
undertow10000151113270375788323240.00%545.4/sec132.6

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

原文地址

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐