我有一个带有nginx,apache和tomcat7的Web服务器。 在这个服务器上运行一个java程序。 我也可以用putty访问服务器。
通常每天一次服务器上的堆内存已满(CMS Old Gen - 堆内存占100%)并且程序变得非常慢。然后我登录服务器并重启tomcat7服务。堆内存被清除,程序再次正常运行。
所以我有两个问题。
我不知道这对你来说是否足够了。如果您需要什么,请告诉我。
亲切的问候
编辑:
Memory Pool Type Maximum CMS Old Gen Heap Memory 316.81 MB Eden Space Heap Memory 66.56 MB Survivor Space Heap Memory 8.31 MB Total 391.68 MB
所以这是Apache Manager的摘录(遗憾的是我还不能发布任何图片)。当CMS Old Gen处于100%状态时,程序开始运行的速度非常慢。 在应用程序的本地版本上,我启动了JVM Monitor以查看是否存在任何泄漏。显然垃圾收集器在那里正常运行,但在服务器上运行不正确。
有什么建议吗?
所以我增加了堆大小,我现在正试图关闭泄漏。 非常感谢你的帮助。见你=)
答案 0 :(得分:2)
垃圾收集器默认运行。如果要确保它正在运行,可以使用-Xloggc:{file}选项启动jvm,以获取有关其活动的一些调试信息。
如果你需要重新启动tomcat来清理堆,你的应用程序可能会有内存泄漏,正如评论已经指出的那样。