Tomcat6内存分配与Apache2
Tomcat6 memory allocation with Apache2
我已经在 Tomcat6 前面安装了 Apache2。
在一个 Ubuntu 实例上,我有 Apache2 运行 8GB RAM,因此决定采用以下 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
在另一个实例中,我有一个 Tomcat6 运行 8GB 内存。在 Tomcat6 server.xml
中使用了以下配置。
<Connector port="8009" protocol="AJP/1.3" redirectPort="8080" maxThreads="500"/>
我的问题是,
- Tomcat6中的process/steps到calculate/decide号
maxThreads
参数是什么?
- 应该如何分配内存?
Tomcat6 是一个 Java 应用程序,因此内存分配由 JVM 完成。我想您愿意通过 apache 代理 tomcat,如果是这样的话,通常 1 个 apache 客户端最终将成为 1 个 apache 线程,因此建议 tomcat 中的线程数少于 apache 中的 MaxClients 指令.这就是说,计算 maxThreads 参数可能很困难,具体取决于您的应用程序,每个线程可能会改变其内存使用情况,平均可能有用,但您还必须考虑其他 JVM 内存空间,eden,permgen,...
查看 JVM 内存设置、每个线程堆栈设置,...我认为这就是您正在寻找的内容。
我已经在 Tomcat6 前面安装了 Apache2。
在一个 Ubuntu 实例上,我有 Apache2 运行 8GB RAM,因此决定采用以下 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
在另一个实例中,我有一个 Tomcat6 运行 8GB 内存。在 Tomcat6 server.xml
中使用了以下配置。
<Connector port="8009" protocol="AJP/1.3" redirectPort="8080" maxThreads="500"/>
我的问题是,
- Tomcat6中的process/steps到calculate/decide号
maxThreads
参数是什么? - 应该如何分配内存?
Tomcat6 是一个 Java 应用程序,因此内存分配由 JVM 完成。我想您愿意通过 apache 代理 tomcat,如果是这样的话,通常 1 个 apache 客户端最终将成为 1 个 apache 线程,因此建议 tomcat 中的线程数少于 apache 中的 MaxClients 指令.这就是说,计算 maxThreads 参数可能很困难,具体取决于您的应用程序,每个线程可能会改变其内存使用情况,平均可能有用,但您还必须考虑其他 JVM 内存空间,eden,permgen,...
查看 JVM 内存设置、每个线程堆栈设置,...我认为这就是您正在寻找的内容。