You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开启HTTP/2的Jetty出现大量CLOSE_WAIT套接字及CPU升高问题求助

问题根因定位

你遇到的是Jetty 9.4.40版本HTTP/2模块的已知缺陷:HeadersBodyParser在解析特定畸形HTTP/2头帧时会进入无限循环,直接导致CPU使用率持续跑高,且对应的连接无法正常释放,最终堆积大量CLOSE_WAIT状态连接。

解决思路

1. 优先方案:升级Jetty版本

该解析逻辑缺陷已经在Jetty 9.4.41及后续稳定版修复,直接升级即可彻底解决问题:

  • 如果使用Dropwizard官方绑定的Jetty版本,选择适配Jetty 9.4.44+的Dropwizard版本升级
  • 若暂时无法升级全量Dropwizard,可单独在依赖管理中覆盖Jetty相关组件的版本到9.4.44及以上稳定版,注意要保证所有Jetty组件版本一致,避免兼容性问题

2. 临时规避方案(无法升级时使用)

  • 调整ELB负载均衡配置:开启HTTP/2帧校验规则,限制头帧大小、头字段数量,过滤畸形请求后再转发到后端Jetty服务
  • 调整Jetty HTTP/2参数:配置maxHeaderListSize、maxFrameSize为合理阈值(比如maxHeaderListSize设为8192),避免异常输入触发解析逻辑缺陷
  • 开启Jetty连接空闲超时:设置idleTimeout为30s以内,自动释放长时间无活动的连接,减少CLOSE_WAIT的堆积
  • 若业务允许,可临时关闭HTTP/2支持,改用HTTP/1.1协议,待版本升级完成后再重新开启HTTP/2
验证建议

升级或调整配置后,可通过以下方式确认问题已修复:

  • 持续监控CPU使用率,确认运行超过12小时无异常飙升
  • 监控TCP连接状态,确认CLOSE_WAIT连接数不会持续增长
  • 模拟畸形HTTP/2请求测试,确认服务不会出现CPU占满、连接泄漏问题

内容的提问来源于stack exchange,提问作者Naveen N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:15:03