4

我试图了解调整 Tomcat 内存设置的艺术。在这个任务中,我有以下三个问题:

  • 运行Tomcat时哪些与内存相关的JVM启动参数值得设置?为什么?
  • 在微调 Tomcat 安装的内存设置时,有哪些有用的经验法则?
  • 您如何监控实时 Tomcat 安装的内存消耗?
4

4 回答 4

2

运行Tomcat时哪些与内存相关的JVM启动参数值得设置?为什么?

我认为答案取决于很多因素,因此不可能给出一个普遍的答案。例如:

  • 内存参数很大程度上取决于您在 Tomcat 中运行的 webapps 的行为。webapps 内存很饿吗?他们的内存使用是周期性的吗?它依赖于负载吗?他们是否使用/依赖堆内缓存?
  • 你是否经常对你的 webapps 进行热重新部署?webapps 做类加载器技巧吗?
  • webapps 是否有特定的性能要求;例如,您是否必须在特定时间内完成 95% 的请求?
  • 您可以忽略在同一台机器上运行的其他 Tomcat 实例/其他应用程序的内存需求吗?

您最好的策略是使用 JMX / jconsole / etc 来查看 GC 在您的 Tomcat 实例中的运行情况。如果您对所看到的内容不满意,请考虑调整 GC。

(并阅读@Romain 答案中的链接文章!)

于 2010-06-13T00:03:46.760 回答
1

基本上,大多数人调整 -Xmx,这意味着为 Java 堆保留的内存。如果运行 Tomcat 的机器没有运行其他占用 RAM 的程序,并且您没有做太多的 I/O(这得益于 RAM 用作缓存),那么让 Tomcat 使用尽可能多的内存通常是值得的。

自从我上次不得不调整 Tomcat 以来已经有好几年了,但调整垃圾收集曾经很有用。

使用任何 JMX 管理工具来监控内存使用情况;JConsole 随 JDK 一起提供,非常有用。

于 2010-06-12T22:25:57.310 回答
1

这篇文章中的链接不再有效。

于 2010-06-13T01:18:07.083 回答
-1

要调整的两个 Java 参数是 -Xmx 和 -Xms,它们设置 JVM 可用的最大内存和 JVM 使用的初始内存。快速man java将解释如何使用 -Xmx 和 -Xms。一如既往,更多的内存将有助于加快速度。

于 2010-08-03T13:54:02.493 回答