使用Apache2的Tomcat6内存分配
我用Apache2在Tomcat6前面 在一个Ubuntu实例上,我使用8GB RAM运行Apache2,因此决定使用以下使用Apache2的Tomcat6内存分配,apache,tomcat,ubuntu,memory,tomcat6,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 55
Apache2.conf
配置
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 550
ServerLimit 550
MaxRequestsPerChild 0
</IfModule>
在另一个例子中,我有一个运行8GB RAM的Tomcat6。在Tomcat6server.xml中,使用以下配置
<Connector port="8009" protocol="AJP/1.3" redirectPort="8080" maxThreads="500"/>
我的问题是
- 计算/决定Tomcat6中的
maxThreads
参数的过程/步骤是什么
- 如何分配内存
Tomcat6是一个Java应用程序,因此内存分配由JVM完成。我假设您愿意通过apache代理tomcat,如果是这样的话,通常1个apache客户端将作为1个apache线程结束,那么建议在tomcat中使用比apache中的MaxClients指令更少的线程数。这就是说,计算maxThreads参数可能很困难,根据应用程序的不同,每个线程可能会改变其内存使用情况,具有平均值可能很有用,但您还必须考虑其他JVM内存空间、eden、permgen等等
看一看JVM内存设置、每线程堆栈设置……我想这就是您可能想要的
<Connector port="8009" protocol="AJP/1.3" redirectPort="8080" maxThreads="500"/>