0

Tomcat サーバーで struts2 プロジェクトを開発しています。

クライアントからサーバー API に 6000 リクエストを投稿しようとしています。しかし、私のサーバー API は約 2000 を超えるリクエストしか受け付けません。他4000人は失敗。

私はクライアントから以下のようなメッセージを受け取りました:

 java.net.ConnectException: Connection refused

私のserver.xmlには設定があります:

    <Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="1000000" maxThreads="50000"  keepAliveTimeout="3200000"     minSpareThreads="10000" acceptCount="13000" maxIdleTime="1000000"
           redirectPort="8443" />

サーバー API がすべてのクライアント要求を取得できるようにするソリューションはありますか?

私を助けてください!ありがとう

4

2 に答える 2

2

これが問題の原因かどうかはわかりませんが、設定値が高すぎるようです!

  • maxThreads=50000 は、すべてのスレッドが使用されている場合に 15 GB 以上のメモリ (win32) を意味します!
  • minSpareThreads=10000 は、起動時に約 3 GB のメモリを消費することを意味します (win32)!
  • keepAliveTimeout=3200000 は、クライアントによって使用/閉じられていない場合、接続が 53 時間以上開いたままになることを意味します!
  • maxIdleTime=1000000 は、未使用のスレッドが破棄されるまで最大 16 時間存在し続けることを意味します。
于 2013-09-24T09:35:24.497 に答える