gpt4 book ai didi

java - 堆内存满会导致服务器速度变慢 - 启用垃圾收集吗? (关闭)

转载 作者:行者123 更新时间:2023-11-30 03:23:01 31 4
gpt4 key购买 nike

我有一个带有 nginx、apache 和 tomcat7 的 Web 服务器。在这台服务器上运行一个java程序。我还可以使用 putty 访问服务器。

通常每天一次,服务器上的堆内存已满(CMS Old Gen - 堆内存为 100%),并且程序变得非常慢。然后我登录服务器并重新启动tomcat7服务。堆内存被清除,程序重新正常运行。

所以我有两个问题。

  1. 我必须从程序或服务器运行垃圾收集吗?
  2. 当垃圾收集在服务器上时,如何启用它?

我不知道这对您来说是否足够。如果您需要任何东西,请告诉我。

亲切的问候

编辑:

Memory Pool     Type         MaximumCMS Old Gen     Heap Memory  316.81 MBEden Space      Heap Memory  66.56 MBSurvivor Space  Heap Memory  8.31 MBTotal                        391.68 MB

这是 Apache Manager 的摘录(不幸的是我还不能发布任何图片)。当 CMS Old Gen 处于 100% 时,程序运行速度开始变得非常慢。在应用程序的本地版本上,我启动了 JVM 监视器以查看是否存在任何泄漏。显然,垃圾收集器在那里正常运行,但在服务器上运行不正常。

有什么建议吗?

所以我增加了堆大小,现在正在尝试关闭泄漏。非常感谢你的帮助。再见=)

最佳答案

垃圾收集器默认运行。如果您想确保它正在运行,您可以使用 -Xloggc:{file} 选项启动 jvm 以获取有关其 Activity 的一些调试信息。

如果您需要重新启动 tomcat 来清理堆,您的应用程序中可能存在内存泄漏,正如注释已经指出的那样。

关于java - 堆内存满会导致服务器速度变慢 - 启用垃圾收集吗? (关闭),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30896272/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com