启动行的相关部分: java -server -Xms10G -Xmx10G -XX:PermSize=1G -XX:MaxPermSize=1G
在终止服务器之前,此实例最终占用了 16GB 内存和 10GB 交换空间。
关于可能导致这种情况的任何想法?
这是在具有 16GB RAM 和 10GB 交换空间的 RedHat 系统上运行的唯一主要应用程序。
启动行的相关部分: java -server -Xms10G -Xmx10G -XX:PermSize=1G -XX:MaxPermSize=1G
在终止服务器之前,此实例最终占用了 16GB 内存和 10GB 交换空间。
关于可能导致这种情况的任何想法?
这是在具有 16GB RAM 和 10GB 交换空间的 RedHat 系统上运行的唯一主要应用程序。
我的猜测可能是失控的线程,在如何分析 Java 应用程序的内存使用情况和查找内存泄漏方面,真的可能更好的堆栈溢出。
请记住,选项
-Xms
和-Xmx
仅适用于堆。还有其他占用内存的东西,例如线程堆栈等。所以也许有线程跑掉了?您可能想查看 ulimit 以限制此应用程序可以使用的内容,并开始使用 Nagios 之类的东西来在内存使用失控时提醒您。你以root身份运行jvm?