我在AWS EC2实例上运行了一些 Docker容器。容器正在运行Java Spring Boot 应用程序。间歇性地(到目前为止每隔几周),似乎Docker内存不足。有时候,我甚至无法通过SSH回到实例中。
我试图查看每个容器中的应用程序日志文件,以查看导致问题的容器,但我找不到任何与内存相关的错误。在Docker 日志文件中,我只能看到错误:
发生错误时,docker-containerd无法分配内存。
如何进一步排查?
答案 0 :(得分:0)
如果您的代码存在一些设计问题,那么Java程序以消耗内存而闻名。首先,尝试配置最大堆内存,看看它是如何通过的。
既然你说过,
有时我甚至无法通过SSH回到实例中。
我会尝试限制Docker容器的内存使用量:
如果您的Java程序因内存不足而崩溃,那么我会分析应用程序并查看内存被吃掉的位置。