news 2026/4/22 15:22:15

改成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/17 19:08:37

AI图像生成ROI分析:自建vs采购的成本收益对比

AI图像生成ROI分析&#xff1a;自建vs采购的成本收益对比 在AI图像生成技术快速普及的今天&#xff0c;企业面临一个关键决策&#xff1a;是自建私有化部署的生成系统&#xff0c;还是直接采购第三方SaaS服务&#xff1f;本文以“阿里通义Z-Image-Turbo WebUI”二次开发项目&am…

作者头像 李华
网站建设 2026/4/19 20:22:51

文档解密工具终极指南:3步快速解锁PDF限制

文档解密工具终极指南&#xff1a;3步快速解锁PDF限制 【免费下载链接】ScienceDecrypting 项目地址: https://gitcode.com/gh_mirrors/sc/ScienceDecrypting 还在为科学文库和国家标准数据库的加密PDF文档而烦恼吗&#xff1f;这款专业的文档解密工具能够一键移除DRM保…

作者头像 李华
网站建设 2026/4/20 2:19:49

免费WebLaTeX终极指南:从零开始掌握在线LaTeX编辑的完整流程

免费WebLaTeX终极指南&#xff1a;从零开始掌握在线LaTeX编辑的完整流程 【免费下载链接】WebLaTex A complete alternative for Overleaf with VSCode Web Git Integration Copilot Grammar & Spell Checker Live Collaboration Support. Based on GitHub Codespace …

作者头像 李华
网站建设 2026/4/18 8:02:44

MGeo地址对齐技术详解与Jupyter操作指南

MGeo地址对齐技术详解与Jupyter操作指南 引言&#xff1a;中文地址匹配的挑战与MGeo的破局之道 在地理信息系统、物流调度、城市计算等场景中&#xff0c;地址数据的标准化与实体对齐是构建高质量空间数据库的核心前提。然而&#xff0c;中文地址存在高度非结构化、表述多样、缩…

作者头像 李华
网站建设 2026/4/17 15:50:07

Vue Excel表格编辑神器:3步打造专业级数据管理界面

Vue Excel表格编辑神器&#xff1a;3步打造专业级数据管理界面 【免费下载链接】vue-excel-editor Vue2 plugin for displaying and editing the array-of-object in Excel style 项目地址: https://gitcode.com/gh_mirrors/vu/vue-excel-editor 还在为Vue项目中复杂的数…

作者头像 李华
网站建设 2026/4/18 8:17:12

WebLaTeX终极指南:免费在线LaTeX编辑器的10个核心技巧

WebLaTeX终极指南&#xff1a;免费在线LaTeX编辑器的10个核心技巧 【免费下载链接】WebLaTex A complete alternative for Overleaf with VSCode Web Git Integration Copilot Grammar & Spell Checker Live Collaboration Support. Based on GitHub Codespace and De…

作者头像 李华