我们有一个在 Java 8 上运行的企业应用程序。部署环境是通过 Bitbucket 管道构建和更新的。我有一张显示环境高级架构的图形。除了一些特定于应用程序的环境变量之外,我们有两个运行相同配置的应用程序服务器。
一切都运行良好,直到一周前成功运行管道后,其中一台服务器上的 2 个应用程序实例停止工作并出现以下错误:
There is insufficient memory for the Java Runtime Environment to continue.
Cannot create GC thread. Out of system resources.
Run Code Online (Sandbox Code Playgroud)
两个实例在另一台服务器上都运行良好。相反,容器无法在此服务器上启动。
该错误伴随以下信息:
可能的原因: 系统物理 RAM 或交换空间不足 进程在启用 CompressedOops 的情况下运行,Java 堆可能会阻止本机堆的增长。
可能的解决方案:
我们已经尝试过:
以下是内存和交换消耗的情况: …