0

RHEL5 で mod jk 1.2.28 で httpd を使用しています。httpd の背後で、Tomcat を実行しています。httpd から tomcat への接続は、modjk を使用して ajp コネクタ経由で行われます。httpd の負荷テストを行っています - JMeter を使用して、2 つの異なる JVM から 120 秒で 2000 人のユーザーを同時に作成すると、httpd のメモリ使用量が高くなり、すべての接続がゆっくりと解放されると、httpd のメモリ解放が非常に遅くなります。時々 httpd プロセスを再起動する必要があります。httpd を再起動すると、メモリ使用量がすぐに減少します。httpd プロセスを再起動せずに httpd メモリの解放を高速化するにはどうすればよいですか? これを実現するための属性は、workers.properties および httpd.conf にありますか?

助けてください。

前もって感謝します :)

4

1 に答える 1

0

私の興味深い観察の1つ-

tomcat server.xml の maxThread の値が 200 と低いと、httpd が応答しなくなり、jmeter 負荷テストの実行後に httpd を再起動する必要があります。テストが完了した後、メモリは自動的に解放されません 8009 の接続は CLOSE_WAIT です

Tomcat server.xml の maxThread の値が 2000 と高い場合、JMeter 負荷テストの実行後に httpd を再起動する必要はありません。テストの完了後にメモリが自動的に解放されるため、8009 の接続は LAST_ACK です。

私のhttpd.confは次のとおりです。これら 2 つの 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 に答える