httpd内存释放很慢

时间:2012-10-04 09:51:18

标签: apache httpd.conf mod-jk worker

我在RHEL5上使用带有mod jk 1.2.28的httpd。 在httpd后面,我确实有tomcat在运行。从httpd到tomcat的连接是通过使用modjk的ajp连接器实现的。 我只是加载测试httpd - 使用JMeter,当我在120秒内同时从两个不同的JVM创建2000个用户时,httpd内存使用率很高,当所有连接缓慢释放时,httpd内存释放非常慢。有时我确实需要重启httpd进程。当我重新启动httpd时,内存使用率会立即下降。 如何在不重启httpd进程的情况下加快httpd内存释放? 在workers.properties和httpd.conf中是否有任何实现此属性的属性?

请提供一些帮助。

提前致谢:)

1 个答案:

答案 0 :(得分:0)

我的一个有趣的观察 -

如果tomcat server.xml中的maxThread值为200,则httpd变得无响应,我需要在运行jmeter负载测试后重新启动httpd。测试完成后,内存不会自动释放 8009上的连接是CLOSE_WAIT

在tomcat server.xml中使用maxThread的高值表示2000,在运行JMeter负载测试后无需重启httpd,因为在测试完成后自动释放内存 8009上的连接是LAST_ACK

我的httpd.conf如下。我不明白使用这两个MPM中的哪一个。因此我需要修改MaxClient值。请帮助我不想重新启动httpd,我不想要maxThread的高值。

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

<IfModule worker.c>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>
相关问题