【问题标题】:Tomcat6 memory allocation with Apache2Tomcat6 内存分配与 Apache2
【发布时间】:2015-05-25 10:33:00
【问题描述】:

我已经在 Tomcat6 上安装了 Apache2。

在一个 Ubuntu 实例上,我使用 8GB RAM 运行 Apache2,因此决定使用以下 apache2.conf 配置。

<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          550
    ServerLimit         550
    MaxRequestsPerChild  0
</IfModule>

上面的配置是使用下面的参数和this blog post(how to configure apache MPM)完成的。

Apache Memory Usage (MB): 611.719
Average Proccess Size (MB): 8.26647

在另一个实例上,我有一个运行 8GB RAM 的 Tomcat6。在Tomcat6中server.xml使用如下配置。

<Connector port="8009" protocol="AJP/1.3" redirectPort="8080" maxThreads="500"/>

我的问题是,

  • Tomcat6中maxThreads参数个数的计算/确定过程/步骤是什么?
  • 应该如何分配内存?

【问题讨论】:

    标签: apache tomcat ubuntu memory tomcat6


    【解决方案1】:

    Tomcat6 是一个 Java 应用程序,因此内存分配由 JVM 完成。我想您愿意通过 apache 代理 tomcat,如果是这样,通常 1 个 apache 客户端最终会成为 1 个 apache 线程,因此建议在 tomcat 中使用比 apache 中的 MaxClients 指令更少的线程数。这就是说,计算 maxThreads 参数可能很困难,具体取决于您的应用程序,每个线程可能会改变其内存使用量,具有平均值可能很有用,但您还必须考虑其他 JVM 内存空间,eden,permgen,...

    看看 JVM 内存设置,每个线程堆栈设置,...我想这就是您可能正在寻找的。​​p>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 2015-09-24
      • 1970-01-01
      • 2011-04-28
      • 2011-05-28
      相关资源
      最近更新 更多