什么原因导致 JBoss 占用比分配的多 4 GB 的内存?

什么原因导致 JBoss 占用比分配的多 4 GB 的内存?

启动行的相关部分:java -server -Xms10G -Xmx10G -XX:PermSize=1G -XX:MaxPermSize=1G

这个实例最终占用了 16GB 内存和 10GB 交换空间,直到服务器崩溃。

您知道是什么原因造成此情况吗?

这是唯一在具有 16GB RAM 和 10GB 交换空间的 RedHat 系统上运行的主要应用程序。

答案1

我的猜测可能是失控线程,实际上可能更好的堆栈溢出是关于如何分析 Java 应用程序的内存使用情况并查找内存泄漏。

请记住,选项-Xms-Xmx仅适用于堆。还有其他东西占用内存,例如线程堆栈等。所以也许有失控的线程?

您可能需要研究 ulimit 以限制此应用程序可以使用的内容,并开始使用 Nagios 之类的程序在内存使用失控时提醒您。您以 root 身份运行 jvm?

相关内容