デフォルトの tomcat 7 スレッド プール サイズが 200 のようです。
しかし、通常の CPU は 16 コアのようです。
したがって、並列実行できるスレッドは 16 個だけです。
なぜTomcatはそれほど多くのスレッドを使用するのですか?
デフォルトの tomcat 7 スレッド プール サイズが 200 のようです。
しかし、通常の CPU は 16 コアのようです。
したがって、並列実行できるスレッドは 16 個だけです。
なぜTomcatはそれほど多くのスレッドを使用するのですか?
長い間、多くのシングル コア コンピューターが存在し、「疑似並列」モードで機能を実行できました。つまり、実際の並列モードで実行されている 16 のスレッドと、疑似並列で実行されている他のスレッドがある可能性があります。
詳細については、これを見てください: Parallel Computing
あなたの質問に答えるために、これらのスレッドはリクエストを処理するのに役立ちます.それらの束はhttpリクエストに参加するために使用され、他のスレッドはアプリケーションロジックを呼び出すために使用されます.
200 スレッドのうち、16 コア マシンで実行されているスレッドは 16 スレッドのみです。典型的な Web アプリケーションのロジックは、軽い計算と重いデータベース クエリを実行することです。200 のスレッドのうち、計算を行っているスレッドはごくわずかで、そのほとんどはデータベースからの応答を待っています。
実際の Web アプリケーションのほとんどは、アプリケーション データの格納にデータベースを使用するため、ディスクを集中的に使用する傾向があります。ディスクに同時にアクセスするスレッドが多すぎると、ディスクのスラッシングが発生する可能性があります。したがって、スレッド数を制限することは、データベースを使用する Web アプリケーションでは理にかなっています。