aaa工位用鱼批发 (@cxt9705)解决了一个JAVA内存泄露的问题,但找不到原因,记录一下看下有没有大佬能指导下 中发帖

项目配置:
JDK21
Springboot3.2.4
默认http服务器undertow(出问题的点)
undertow使用默认配置
容器环境limit为4c8g
故障表现:
压测过程中,DirectBuffer飙升,打满2g的直接内存上限后,由于内存溢出无法再申请内存导致请求大量报错,GC后DirectBuffer没有明显下降。日志中提示undertow申请内存失败,但由于服务器就是用的undertow,所以倒也没怀疑。
排查过程:
直接内存溢出第一反应就是排查一些io请求会用到堆外内存,因为项目并不复杂没有用到很高大上的东西,也就一个OkHttpClient负责发起对外请求,找了几个可能没有触发close的点,改为try-resource后重新压测依旧复现。
于是尝试dump了下内存进MAT里进行排查,DirectByteBuff的占用,数量高达129444,几乎都被u...