2011-06-19 29 views
11

私はちょうど知りたいどのようにTomcatスレッドプール内のスレッドの数を増やすには? と最大数を設定する数字は、私は何が適切であるか分からないのですか?Tomcatスレッドプールのスレッド数を増やす方法は?

+2

これは現在どのように設定されていますか?あなたがもっと必要と思うようになっているあなたの問題は何ですか? – Olaf

+0

正解を選択しますか? – alfonx

答えて

17

は、あなたが滞在する必要のようですね

真剣デフォルト;-):あなたが設定する必要があり、最大の並列接続数があなたの期待されるTomcatの使用にも、サーバー上のコアの数に依存します。あなたのプロセッサ上のコア数を増やして=より多くの並列スレッドを実行できます。

...設定する方法はこちらをご覧ください

のTomcat 6:http://tomcat.apache.org/tomcat-6.0-doc/config/executor.html

のTomcat 7:http://tomcat.apache.org/tomcat-7.0-doc/config/executor.html

+0

こんにちは、私は春バッチリモートパーティションアプリケーションを実行しているとバネ統合インバウンドゲートウェイを使用しています。私は同時実行性を10に設定しましたが、常に最大8スレッドを実行します。これはサーバーのCPUコアの数に関連していますか?スレッドの並行性を向上させる方法はありますか? CPU使用率はプロセスを実行するにはあまり高くありません。 http://stackoverflow.com/questions/24575008/spring-batch-admin-remote-partition-steps-running-maximum-8-threads-even-though – vishal

17

あなたはそれお使いの環境に応じて調整する必要があります。

スレッドの最大数ではなくバックログ(acceptCount)のサイズを増やす方が便利な場合があります。

代わり

<Connector ... maxThreads="500" acceptCount="50" 

の言ってやる、あなたは資源やバックログキューを争う以下のスレッドがあるだろう引き起こし、いくつかのケースでより良いパフォーマンスを得ることができます

<Connector ... maxThreads="300" acceptCount="150" 

を使用するが消費されますもっと早く。

いずれにしても、何が最良かを本当に知るためにベンチマークを行う必要があります。

+0

[link](http://tomcat.apache.org)から/tomcat-8.0-doc/config/http.html) –

9

Tomcat Documentation

MaxConnectionsをこの数に達した から、サーバは、処理する一つのさらなる接続を受け入れますが、しません。 制限に達すると、オペレーティングシステムは引き続きacceptCount設定に基づいて接続を受け付けます。 (可能なすべての要求処理スレッドが使用されているときに着信接続要求の最大キュー長キューがいっぱいになったときに受信された要求は拒否されますデフォルト値は100)BIOの場合、デフォルトはmaxThreadsの値です。この場合、デフォルトはexecutorからのmaxThreadsの値になります。 NIOとNIO2の場合、デフォルトは10000です.APR /ネイティブの場合、デフォルトは8192です.Windows上のAPR /ネイティブの場合、設定された値はmaxConnections以下の1024の倍数に縮小されます。これはパフォーマンスの理由から行われます。

maxThreadsの
従って取り扱うことができる同時要求の最大数を決定し、このコネクタによって作成される要求処理スレッドの最大数。指定されていない場合、この属性は200に設定されます。エグゼキューターがこのコネクターに関連付けられている場合、コネクターは内部スレッドプールではなくエグゼキューターを使用してタスクを実行するため、この属性は無視されます。

関連する問題