我们有几个正在生产中运行数据服务的虚拟机,客户端会发送Restful HTTP请求到数据服务,负载有些重(通常每个主机每秒500个请求),并且负载总是均衡分布在每台虚拟机上。我们在所有主机上都有相同的配置(2个CPU,
两天前,我们发现这5台虚拟机的老年代堆使用量开始增长(每天300 MB),而其他虚拟机的老年代堆使用量保持不变(大约80 MB)。我们正在试图确定根本原因,我想问一下这是否是内存泄漏问题还是正常情况?老年代内存使用量的增长是否总是意味着Java中存在内存泄漏?
谢谢。
更新:昨天我们刚刚重新启动了这5台主机,在所有主机上老年代堆使用量都恢复正常了,但是在今天早上的高峰负载之后,其中一台主机的老年代堆使用量又开始增长了...
-Xms2048m -Xmx4096m -XX:MaxPermSize=192m -XX:NewSize=512m -XX:MaxNewSize=512M -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+HeapDumpOnOutOfMemoryError
)。两天前,我们发现这5台虚拟机的老年代堆使用量开始增长(每天300 MB),而其他虚拟机的老年代堆使用量保持不变(大约80 MB)。我们正在试图确定根本原因,我想问一下这是否是内存泄漏问题还是正常情况?老年代内存使用量的增长是否总是意味着Java中存在内存泄漏?
谢谢。
更新:昨天我们刚刚重新启动了这5台主机,在所有主机上老年代堆使用量都恢复正常了,但是在今天早上的高峰负载之后,其中一台主机的老年代堆使用量又开始增长了...
HashMap
中,而没有任何逐出/过期策略。 - Matt R