嗨,我们在unix environmnet中运行的进程之一出现了内存异常。如何识别错误(我们观察到java进程中内存泄漏的可能性很小)。所以我们需要分析才能找到rootcauase
答案 0 :(得分:1)
我建议使用像 YourKit (homepage)这样的探查器,以便您可以轻松找到分配如此多内存的内容。
在任何情况下,您都应该检查为JVM指定了哪些设置,以了解是否需要更多堆内存用于您的程序。您可以通过指定-X
参数:
java -Xmx2g -Xms512m
将以2Gb的最大堆启动JVM,起始大小为512Mb
答案 1 :(得分:0)
如果没有内存泄漏,则应用程序需要更多内存。你是从堆内存,或内存或本机内存?对于堆内存和perm内存,您可以分别使用-Xmx.or -XX:PermSize参数来增加分配。
但首先尝试使用分析器验证您的应用程序确实没有泄漏任何内存。