tomcat Vs Undertow压测对比结果
数据库查询压测
mysql连接池,初始300,闲置300,最大可激活2000
1K并发请求,10W请求总数
servlet容器 | 完成时间 | 平均每秒请求数 |
---|
Tomcat | 57s | 1743 |
Undertow | 55s | 1787 |
2K并发请求,10W请求总数
servlet容器 | 完成时间 | 平均每秒请求数 |
---|
Tomcat | 40s | 2493 |
Undertow | 36s | 2765 |
3K并发请求,10W请求总数
servlet容器 | 完成时间 | 平均每秒请求数 |
---|
Tomcat | 39s | 2506 |
Undertow | 36s | 2771 |
mysql连接池,初始300,闲置300,最大可激活10000
3K并发请求,10W请求总数
servlet容器 | 完成时间 | 平均每秒请求数 |
---|
Tomcat | 39s | 2531 |
Undertow | 35s | 2805 |
阶段性总结
截止到目前的测试结果,可见数据库查询压测已经到达瓶颈,该数据库查询未经过redis,都是直达mysql。从以上数据来看,undertow相对tomcat来说,相对优秀。
web查询测试
3K并发请求,10W请求总数(瞬间大流量)
servlet容器 | 完成时间 | 平均每秒请求数 |
---|
Tomcat | 7s | 13129 |
Undertow | 6s | 14673 |
8K并发请求,10W请求总数(瞬间超大流量)
servlet容器 | 完成时间 | 平均每秒请求数 |
---|
Tomcat | 6s | 15882 |
Undertow | 5s | 17530 |
2K并发请求,100W请求总数(长时间大流量)
servlet容器 | 完成时间 | 平均每秒请求数 |
---|
Tomcat | 59s | 16864 |
Undertow | 51s | 19347 |
2W并发请求,100W请求总数(长时间超大流量)
servlet容器 | 完成时间 | 平均每秒请求数 | 完成情况 |
---|
Tomcat | 超过2min | 最高14000 | 完成96W请求,无法完成100W |
Undertow | 51s | 19240 | 顺利完成 |
阶段性总结
相对于没有数据库的参与,请求完成速度快上不少。可以得到两个有效数据。
- 第一个数据是undertow相对tomcat,在长时间大流量的场景下,可用性更高,而且可以维持更高的并发响应,tomcat则无法维持
- 第二个数据是在4核8G的情况,undertow可以维持最高并发为19000左右,tomcat可以维持在16000左右
=================================================
压测结果
数据库查询压测
mysql连接池,初始300,闲置300,最大可激活2000
1K并发请求,10W请求总数
servlet容器 | 完成时间 | 平均每秒请求数 |
---|
Tomcat | 57s | 1743 |
Undertow | 55s | 1787 |
2K并发请求,10W请求总数
servlet容器 | 完成时间 | 平均每秒请求数 |
---|
Tomcat | 40s | 2493 |
Undertow | 36s | 2765 |
3K并发请求,10W请求总数
servlet容器 | 完成时间 | 平均每秒请求数 |
---|
Tomcat | 39s | 2506 |
Undertow | 36s | 2771 |
mysql连接池,初始300,闲置300,最大可激活10000
3K并发请求,10W请求总数
servlet容器 | 完成时间 | 平均每秒请求数 |
---|
Tomcat | 39s | 2531 |
Undertow | 35s | 2805 |
阶段性总结
截止到目前的测试结果,可见数据库查询压测已经到达瓶颈,该数据库查询未经过redis,都是直达mysql。从以上数据来看,undertow相对tomcat来说,相对优秀。
web查询测试
3K并发请求,10W请求总数(瞬间大流量)
servlet容器 | 完成时间 | 平均每秒请求数 |
---|
Tomcat | 7s | 13129 |
Undertow | 6s | 14673 |
8K并发请求,10W请求总数(瞬间超大流量)
servlet容器 | 完成时间 | 平均每秒请求数 |
---|
Tomcat | 6s | 15882 |
Undertow | 5s | 17530 |
2K并发请求,100W请求总数(长时间大流量)
servlet容器 | 完成时间 | 平均每秒请求数 |
---|
Tomcat | 59s | 16864 |
Undertow | 51s | 19347 |
2W并发请求,100W请求总数(长时间超大流量)
servlet容器 | 完成时间 | 平均每秒请求数 | 完成情况 |
---|
Tomcat | 超过2min | 最高14000 | 完成96W请求,无法完成100W |
Undertow | 51s | 19240 | 顺利完成 |
阶段性总结
相对于没有数据库的参与,请求完成速度快上不少。可以得到两个有效数据。
- 第一个数据是undertow相对tomcat,在长时间大流量的场景下,可用性更高,而且可以维持更高的并发响应,tomcat则无法维持
- 第二个数据是在4核8G的情况,undertow可以维持最高并发为19000左右,tomcat可以维持在16000左右
servlet容器 | 标准配置 | 并发数上限 | 每秒平均响应数 |
---|
Tomcat | 4核8G | 4000 | 18300 |
Undertow | 4核8G | 4000 | 21300 |