首页 > 解决方案 > docker容器中的sspring-boot app不使用就消耗高CPU

问题描述

我有一个非常奇怪的问题。我有一个在 docker 容器中运行的 java web 应用程序(spring boot 1.5)。

在某些时候,应用程序开始消耗 CPU quire。所以我在想这个应用程序本身有某种错误。

如果我从负载均衡器中删除该应用程序,因此它将不接受任何连接,该应用程序将继续消耗大量 CPU,即使它根本没有被访问。

我继续在日志文件中看到来自应用程序的大量 GC 日志条目。似乎 JVM 继续每 300 毫秒在 Young gen 上运行 GC,即使应用程序应该完全空闲(并且它是空闲的,因为日志文件中没有任何内容)!

该应用程序本身只是一个使用 Spring Boot 的网站。那里没有什么特别的(没有计划任务或其他什么)。

知道这里会发生什么吗?它可以与docker相关吗?

提前致谢

标签: javadockerspring-bootgarbage-collection

解决方案


好的,事实证明这与 docker 无关。是应用程序中的一个错误,创建了许多(不必要的)需要 GC 的短期对象。


推荐阅读