测试目的:
Tomcat和Undertow的性能做对比,确定生产环境调优参数
测试工具
压测工具:jmeter
jvm监控工具:visualvm
测试过程:
设置jmeter的线程组参数,设置如下:100个线程,每个线程发起100个请求,线程启动间隔是1秒
设置请求参数,这里设置的是http,post请求。
测试tomcat下的性能表现
viusalVm监控结果:
jmeter聚合报告:
测试Undertow下的性能表现
jmeter聚合报告:
测试结果
当服务启动后有监控图对比
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有较好的吞吐量和较低的访问时延,所以生产环境
以上只是粗略的测试,也不够专业,敬请谅解,但大致能对比出结果。如果大家有更好的测试方法,欢迎交流,可邮件联系。