【问题标题】:Which memory related Tomcat JVM startup parameters are worth tuning?哪些内存相关的Tomcat JVM启动参数值得调优?
【发布时间】:2010-06-12 22:12:01
【问题描述】:

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

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

【问题讨论】:

    标签: java performance jvm jvm-arguments


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 此处指定的链接不可用/在线anmyore。
      • 链接不再有效。
      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2013-11-03
          • 2017-04-09
          • 2013-11-20
          • 1970-01-01
          • 2014-05-08
          • 2014-10-28
          • 1970-01-01
          • 2020-10-04
          • 1970-01-01
          相关资源
          最近更新 更多