Tomcat和Undertow并发性能

本文通过压测工具对比了Spring Boot应用中Undertow与Tomcat两种服务器的性能表现。结果显示Undertow在错误率和请求处理速度方面明显优于Tomcat。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

###Undertow(SpringBoot内置版)篇

####JVM参数: -Xms1024m -Xmx1024m ####测试参数: 压测工具,参数最大化,连续测试10分钟,得出各种曲线。 ####软件架构: JDK1.8 SpringBoot全家桶,version1.4.2 SpringMVC Freemarker Undertow(内置) ####硬件环境: CPU:i7-4710mq RAM:16GB(有JVM参数,貌似没啥意义) ####测试环境: Freemarker页面,几乎都是静态的东西,反正测试页面都相同。 ####结果概览

亮瞎了我的双眼,要不要别这么暴力,一个错误没有!

####GC曲线

一直发生GC的是Eden区,其它区几乎没有GC过,毕竟就一个很简单的Controller.

####RPS曲线

眼睛再次受伤,太完美了,差不多一直保持在2K以上。

###Tomcat(内置版)篇

####JVM参数: -Xms1024m -Xmx1024m ####测试参数: 压测工具,参数最大化,连续测试10分钟,得出各种曲线。 ####软件架构: JDK1.8 SpringBoot全家桶,version1.4.2 SpringMVC Freemarker ####硬件环境: CPU:i7-4710mq RAM:16GB(有JVM参数,貌似没啥意义) ####测试环境: Freemarker页面,几乎都是静态的东西,反正测试页面都相同。 ####结果概览

相对前者,错误较多,而且,总请求次数远远低于前者。

####GC曲线

中间出现严重的性能下降,从2000直接将到200,让人无法仍受。

####RPS曲线

额,就像狗生一样,大起大落。

###Tomcat(外部版)篇

####JVM参数: -Xms1024m -Xmx1024m ####测试参数: 压测工具,参数最大化,连续测试10分钟,得出各种曲线。 ####软件架构: JDK1.8 SpringBoot全家桶,version1.4.2 SpringMVC Freemarker ####硬件环境: CPU:i7-4710mq RAM:16GB(有JVM参数,貌似没啥意义) ####测试环境: Freemarker页面,几乎都是静态的东西,反正测试页面都相同。 ####结果概览 和内置版本差不多,错误较多,而且,总请求次数远远低于Undertow。 ####GC曲线 不想说话。 ####RPS曲线 依旧不想说。

####额外 因为都是默认参数,并没有加入任何优化参数或者机制,所以,如果单纯想从上面结果得到什么结论的话,我觉得还为时过早。而且,测试太单一了,就是一个页面转发。当然啦,从各项牛X的图表数据来看,不可否认,Undertow太猛了。

转载于:https://my.oschina.net/vright/blog/826969

Tomcat Undertow 都是流行的 Java Web 容器,它们用于部署运行基于 Servlet 的应用程序。尽管两者有一些共同点,但在架构、性能以及用途方面存在一些显著差异。 ### Tomcat Apache Tomcat 是由 Apache 软件基金会开发的一个开源项目。它不仅是一个Servlet容器,还支持JSP(Java Server Pages)、JSF等技术,并且实现了Java EE标准中的Web层规范。因此,对于许多企业级应用来说,它是默认的选择之一。 #### 主要特点: - 支持多种协议如HTTP/1.1, AJP 等; - 内置了对静态文件处理的支持; - 提供了一个图形界面管理工具; - 社区活跃度高,文档丰富; 然而,在面对大量并发请求时,默认配置下的Tomcat可能会显得有些吃力,因为它采用了传统的线程池模型来处理每一个新连接。 ### Undertow Undertow 则是由 Red Hat 开发的一款轻量级高性能的嵌入式Web服务器及Servlet容器。它的设计目标是在提供简单API的同时保持高效的I/O操作能力,特别适合现代微服务架构的需求。 #### 特别之处包括: - 异步非阻塞IO机制使其能够更好地应对大规模并发场景; - 可以作为独立的应用程序服务器运行,也可以集成到其他框架中成为其内部使用的HTTP引擎(例如 WildFly/JBoss EAP 中就集成了Undertow); - 更低资源消耗,启动速度更快; 综上所述,如果你正在寻找一个稳定可靠的企业级解决方案并且需要完整的JavaEE特性,则可以选择Tomcat;而如果更关注于构建高效能、低延迟的服务端应用,尤其是当业务逻辑较为复杂并涉及到大量的异步任务时,那么Undertow可能是更好的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值