使用Apache2进行Tomcat6内存分配

时间:2015-05-25 10:33:00

标签: apache tomcat ubuntu memory tomcat6

我在Apache2上面对Tomcat6。

在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参数的过程/步骤是什么?
  • 应该如何进行内存分配?

1 个答案:

答案 0 :(得分:2)

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

看一下JVM内存设置,每个线程堆栈设置,......我认为这是你可能正在寻找的。