java - docker容器中的sspring-boot app不使用就消耗高CPU
问题描述
我有一个非常奇怪的问题。我有一个在 docker 容器中运行的 java web 应用程序(spring boot 1.5)。
在某些时候,应用程序开始消耗 CPU quire。所以我在想这个应用程序本身有某种错误。
但
如果我从负载均衡器中删除该应用程序,因此它将不接受任何连接,该应用程序将继续消耗大量 CPU,即使它根本没有被访问。
我继续在日志文件中看到来自应用程序的大量 GC 日志条目。似乎 JVM 继续每 300 毫秒在 Young gen 上运行 GC,即使应用程序应该完全空闲(并且它是空闲的,因为日志文件中没有任何内容)!
该应用程序本身只是一个使用 Spring Boot 的网站。那里没有什么特别的(没有计划任务或其他什么)。
知道这里会发生什么吗?它可以与docker相关吗?
提前致谢
解决方案
好的,事实证明这与 docker 无关。是应用程序中的一个错误,创建了许多(不必要的)需要 GC 的短期对象。
推荐阅读
- reactjs - 更改输入值后,表 1 的值需要保持不变
- excel - 更改单元格范围以覆盖列中的所有数据
- iis - 是否可以在 Biztalk AS2 连接中拦截加密的 HTTP 正文?
- css - 如何知道用户是否在css中使用移动设备?
- sql - 根据换算表进行单位换算的功能
- java - 当文件改变时,我读取文件,文件的内容总是一样的?
- c++ - D3DXCreateTextureFromFile 不创建纹理
- flutter - 如何在颤振中创建这种类型的对话框
- gmail - Gmail LodgingReservation 标记显示不正确的日期
- html - 锚标记无法正常工作。当我打开网页时,它的行为就像一个简单的文本而不是一个链接