我们有一个在 centos 机器上运行的套接字监听器程序。令人担忧的是,顶部显示的应用程序的内存使用量不断出现小幅增长。另一方面,如果我们使用 jstat gcutil,它会显示永久代有一些微小的增加,但到目前为止,它们还不是 FGC,而是许多 YGC。这是否表明存在任何内存问题?最大和初始内存均已设置为256M。
最佳答案
Could this be indicating any memory issue?
也许吧。您所描述的可能是由应用程序中的错误引起的内存泄漏。如果这就是问题所在,那么最终应用程序将填满 Java 堆......并因 OutOfMemoryError
而终止。
如果您想确认这一点,请尝试使用更小的堆来运行应用程序;即较小的最大堆大小。如果发生泄漏,应用程序将在较短的时间内崩溃。
有很多关于查找 Java 内存泄漏的资源。以下是一些:
- General strategy to resolve Java memory leak?
- How to find a Java Memory Leak
- http://netbeans.org/kb/articles/nb-profiler-uncoveringleaks_pt1.html
- http://rejeev.blogspot.com.au/2009/04/analyzing-memory-leak-in-java.html
对此还有其他可能的解释......包括“没有问题”。但如果您遇到 OOME,那么您确实遇到了真正的问题。
关于linux top 的 Java 内存使用量持续以小比例增长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15673769/