Tomcat,Jetty和Undertow是目前比较主流的3款Servlet容器,而且Spring Boot框架还提供了对它们的集成支持(默认使用的是Tomcat),网络上有许多文章都在介绍Undertow容器的性能比Tomcat和Jetty要好。本着事实就是的原则,我对这三款容器做了一个压测对比,真正通数据来对比到底是谁有优势,同时也是作为容器选择的一个参考。

测试环境

  1. 压测工具:JMeter 5.2.1,使用插件jpgc-casutg提供的Concurrency Thread Group线程组对象
  2. 测试程序:一个简单的基于Spring Boot框架程序,提供2个接口,分别模拟返回简单字符串对象和复杂对象,详见://TODO
  3. 测试用例:分别使用100个线程,500个线程,1000个线程三组压力进行测试
  4. 压测环境:
    • 操作系统:Ubuntu 18.04 LTS Desktop
    • 处理器:Intel Core i5-6200U CPU @ 2.30GHz × 4
    • 内存:8GB
  5. 压测主要指标:响应时间,吞吐量,系统负载(CPU,内存,线程数)

压测指标



吞吐量:Undertow > Jetty > Tomcat

响应时间:Jetty < Tomcat < Undertow



CPU:Undertow < Jetty < Tomcat



内存:Undertow < Jetty < Tomcat



线程数:Undertow < Jetty < Tomcat

结论

结论:综合吞吐量,响应时间以及资源消耗,Undertow胜出。

最新文章

  1. oracle数据查询
  2. SLF4J: Class path contains multiple SLF4J bindings.
  3. UGUI&amp;&amp;Animator模块知识点随记
  4. HashMap原理分析
  5. MySQL日期数据类型、MySQL时间类型使用总结
  6. 64位环境中使用SQL查询excel的方式解决
  7. 【Objective-C】2.自定义构造方法和description方法
  8. D3.js学习记录 - 数据类型【转】【新】
  9. 《http权威指南》读书笔记12
  10. Python 文件编译为字节码的方法
  11. 事件代理on
  12. 【BZOJ4712】洪水
  13. vue中使用baidushare分享到微信无法显示bug解决方案
  14. JavaScript 是如何工作的: 事件循环和异步编程的崛起 + 5个如何更好的使用 async/await 编码的技巧 - 学习笔记
  15. 深入C# String类
  16. 学习笔记 | CDQ分治
  17. N76E003系统时钟
  18. SQL Server存储过程 对数组参数的循环处理
  19. TSQL--NULL值和三值逻辑
  20. word里的字号与html字号的对应关系

热门文章

  1. 关于C#调用非托管DLL,报“内存已损坏的”坑,坑,坑
  2. mr原理简单分析
  3. Solr的原理及使用
  4. MPI中的cannon算法
  5. 【Azure DevOps系列】Azure DevOps生成代码覆盖率
  6. 【Android】安卓开发之activity如何传值到fragment,activity与fragment传值
  7. 【MarkDown】github readme添加图片 Markdown语法添加图片,适用各种markdown语法
  8. PageObject六大原则
  9. 【接口自动化】selenium库也有大用场(获取cookie)
  10. [HGAME Week2] Cosmos的博客后台