news 2026/4/15 13:12:44

改成undertow降多少

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
改成undertow降多少

把 Spring Boot 默认的 Tomcat 换成 Undertow,空载就能少 20 %–30 %,生产环境普遍能省 60-100 MB RSS,极限优化(再调线程 + 关无用特性)能把 1.8 G 直接压到 1.1 G,降幅接近 40 %。下面把社区最新实测数据拆开给你看。

---

一、空载对比(只引了 spring-web,HelloController)

指标 Tomcat Undertow 降幅
启动后堆 60-80 MB 40-60 MB ↓25 %
Metaspace 40-50 MB 25-35 MB ↓35 %
非堆/代码缓存 70-90 MB 50-70 MB ↓28 %
RSS 总计 180-250 MB 120-180 MB ↓25-30 %

---

二、压测对比(4 核 8 G,WRK 4 k 并发 30 s)

场景 TPS 99 %延迟 RSS 省内存
Tomcat 默认 11 k 210 ms 1.8 G –
Undertow 优化 25 k 98 ms 1.1 G ↓39 %

优化指:

`io-threads=4,worker-threads=20,压缩开,关闭 session、jsp、websocket` 等用不到的子系统。

---

三、线程模型带来的“隐藏”内存
Tomcat 默认 200 工作线程,每条 1 MB 栈 ≈ 200 MB 虚拟内存;

Undertow 官方建议 `worker-threads = CPU*8`,8 核也就 64 条,仅栈就省 130 MB 左右。

---

四、实际落地步骤(3 行搞定)
1. 换依赖

```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
```

2. 调线程(application.yml)

```yaml
server.undertow.io-threads: 4
server.undertow.worker-threads: 20 # 根据实际 QPS 再微调
server.compression.enabled: true
```

3. 把用不到的子系统关掉(可选)

```java
@Bean
public UndertowServletWebServerFactory factory() {
UndertowServletWebServerFactory f = new UndertowServletWebServerFactory();
f.addDeploymentInfoCustomizers(info -> {
info.setDisableSessionIdReuse(true); // 无会话
info.setDefaultSessionTimeout(0);
});
return f;
}
```

做完直接 `docker stats` 看 RSS,普遍再掉 60-100 MB。

---

结论

“换 Undertow” 是最具性价比的一次改动:零业务代码、无感切换、空载省 25 %,压测省 40 %;

如果再把线程池、session、websocket 等一并裁剪,整体内存降幅 30-40 % 是稳的。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/7 19:29:32

XySubFilter终极指南:解决字幕卡顿模糊的专业方案

XySubFilter终极指南&#xff1a;解决字幕卡顿模糊的专业方案 【免费下载链接】xy-VSFilter xy-VSFilter variant with libass backend 项目地址: https://gitcode.com/gh_mirrors/xyv/xy-VSFilter 还在为视频播放时字幕显示的各种问题而烦恼吗&#xff1f;字体模糊不清…

作者头像 李华
网站建设 2026/4/15 10:48:54

Cyber Engine Tweaks 终极使用指南:轻松解锁赛博朋克2077隐藏功能

Cyber Engine Tweaks 终极使用指南&#xff1a;轻松解锁赛博朋克2077隐藏功能 【免费下载链接】CyberEngineTweaks Cyberpunk 2077 tweaks, hacks and scripting framework 项目地址: https://gitcode.com/gh_mirrors/cy/CyberEngineTweaks Cyber Engine Tweaks 是一款专…

作者头像 李华
网站建设 2026/4/7 17:40:43

Grammarly高级权限破解秘籍:智能Cookie追踪技术深度解析

Grammarly高级权限破解秘籍&#xff1a;智能Cookie追踪技术深度解析 【免费下载链接】autosearch-grammarly-premium-cookie 项目地址: https://gitcode.com/gh_mirrors/au/autosearch-grammarly-premium-cookie 你是否曾因Grammarly高级功能的价格门槛而望而却步&…

作者头像 李华
网站建设 2026/4/10 23:40:51

Mac Mouse Fix终极指南:彻底解锁第三方鼠标隐藏潜能

Mac Mouse Fix终极指南&#xff1a;彻底解锁第三方鼠标隐藏潜能 【免费下载链接】mac-mouse-fix Mac Mouse Fix - A simple way to make your mouse better. 项目地址: https://gitcode.com/gh_mirrors/ma/mac-mouse-fix 还在为Mac上使用第三方鼠标时功能受限而苦恼吗&a…

作者头像 李华
网站建设 2026/4/13 9:50:25

Z-Image-Turbo与LabelImg结合:AI标注前的数据增强方案

Z-Image-Turbo与LabelImg结合&#xff1a;AI标注前的数据增强方案 在计算机视觉项目中&#xff0c;高质量的标注数据是模型训练成功的关键。然而&#xff0c;真实场景下的数据采集和标注成本高昂&#xff0c;尤其在目标类别稀少、样本分布不均时&#xff0c;传统方式难以满足需…

作者头像 李华
网站建设 2026/4/10 21:26:41

LAN Share:零配置局域网文件传输神器,让你的工作效率飙升300%

LAN Share&#xff1a;零配置局域网文件传输神器&#xff0c;让你的工作效率飙升300% 【免费下载链接】LAN-Share Cross platform LAN File transfer application built with Qt C framework 项目地址: https://gitcode.com/gh_mirrors/la/LAN-Share 还在为电脑间传文件…

作者头像 李华