【发布时间】:2011-10-17 03:29:15
【问题描述】:
我有一个 Glassfish v3 服务器运行一些 Web 应用程序(servlet、JSP、JDBC)。我一直注意到,如果让 Glassfish 运行很长时间,它将消耗所有可用内存(这是在具有 750 MB 内存的服务器上运行的)。
我认为肯定存在内存泄漏,因此我在使用 JProfiler 监视服务器的同时运行了服务器,并注意到当我的流量达到峰值时,我的内存使用量猛增(如预期的那样),但随后又迅速回落.
我想知道问题是否与内存泄漏无关,而更多的是 Glassfish 在出现峰值时会扩展其堆大小(这似乎确实正在发生),但在实际内存使用量下降时不会减小堆大小。
但是,根据此图表,内存使用率(蓝色)似乎确实随着服务器运行时间的延长而呈上升趋势。
我的问题有两个:
当实际内存使用量在峰值后下降时,有什么方法可以减小堆大小?
我是否可能确实存在内存泄漏,或者这是否正常?我可以做些什么来进一步调查这种内存使用情况?
【问题讨论】:
标签: java memory-leaks glassfish heap-memory