启动行的相关部分:java -server -Xms10G -Xmx10G -XX:PermSize=1G -XX:MaxPermSize=1G
这个实例最终占用了 16GB 内存和 10GB 交换空间,直到服务器崩溃。
您知道是什么原因造成此情况吗?
这是唯一在具有 16GB RAM 和 10GB 交换空间的 RedHat 系统上运行的主要应用程序。
答案1
我的猜测可能是失控线程,实际上可能更好的堆栈溢出是关于如何分析 Java 应用程序的内存使用情况并查找内存泄漏。
请记住,选项-Xms
和-Xmx
仅适用于堆。还有其他东西占用内存,例如线程堆栈等。所以也许有失控的线程?
您可能需要研究 ulimit 以限制此应用程序可以使用的内容,并开始使用 Nagios 之类的程序在内存使用失控时提醒您。您以 root 身份运行 jvm?