0

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

请提供一些帮助。

提前致谢 :)

4

1 回答 1

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>
于 2012-10-04T12:33:24.863 回答