哪些内存相关的Tomcat JVM启动参数值得调整?

时间:2010-06-12 22:12:02

标签: java performance jvm jvm-arguments

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

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

4 个答案:

答案 0 :(得分:2)

  

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

我认为答案取决于很多因素,因此无法给出一般答案。例如:

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

您最好的策略是使用JMX / jconsole / etc查看GC在Tomcat实例中的运行方式。如果您对所看到的内容不满意,那么然后会考虑调整GC。

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

答案 1 :(得分:1)

基本上,大多数人调整-Xmx,这意味着为Java堆保留的内存。如果运行Tomcat的盒子没有运行任何其他吃RAM的东西而且你没有做太多的I / O(这有利于RAM被用作缓存),那么让Tomcat尽可能多地使用内存通常是值得的。

自从我上次调整Tomcat以来已经很久了,但调整垃圾收集过去很有用。

使用任何JMX管理工具来监控内存使用情况; JConsole附带了JDK,非常有用。

答案 2 :(得分:1)

这是一篇很好的文章,名为
My advice on JVM heap tuning, keep your fingers off the knobs!

就监控而言,请参阅此工具:http://www.lambdaprobe.org/d/index.htm

答案 3 :(得分:0)

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