# sprint boot项目 使用webflux异步线程 OOM

现象

sprint boot项目 使用k8s环境运行,项目频繁OOM

查看后发现 因项目使用异步线程且 线程上线数量设置为30000万

k8s pod设置运行内存2.5 jvm最大使用1.5

详情

ps huH p pid 查看项目子线程

[root@dev-kubernetes-node-12 data]# ps huH 396070 |head -10
root     396070  0.0  2.6 8008088 867460 ?      Ssl  19:10   0:00 java -javaagent:/opt/skywalking-agent/skywalking-agent.jar -DSW_AGENT_NAME=dev-admin-api -Xms1300m -Xmx1300m -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=collector.xc.com:11800 -Denv=dev -DappName=admin-api -jar 111.jar
root     396070  0.3  2.6 8008088 867460 ?      Ssl  19:10   0:10 java -javaagent:/opt/skywalking-agent/skywalking-agent.jar -DSW_AGENT_NAME=dev-admin-api -Xms1300m -Xmx1300m -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=collector.xc.com:11800 -Denv=dev -DappName=admin-api -jar 111.jar
root     396070  0.0  2.6 8008088 867460 ?      Ssl  19:10   0:00 java -javaagent:/opt/skywalking-agent/skywalking-agent.jar -DSW_AGENT_NAME=dev-admin-api -Xms1300m -Xmx1300m -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=collector.xc.com:11800 -Denv=dev -DappName=admin-api -jar 111.jar

发现使用了很多子线程 但是http健康检查每检查一次增加一个线程 并不自动使用后销毁

java配置如下

server:
  port: 9323
  undertow:
    worker-threads: 30000
    buffer-size: 1024
    direct-buffers: true

使用默认配置没有问题 加上如上配置就出现问题

解决方法

您可能还喜欢...

发表评论

您的电子邮箱地址不会被公开。