3

戦争としてパックされ、ubuntu 12.04 LTS 64ビット、8GB RAM上のtomcat7サーバーにデプロイされたGrails 2.2.4アプリケーションがあります。

私の setenv.sh ファイルには次のものが含まれています。

CATALINA_OPTS="
-server 
-Xms1G 
-Xmx2G
-XX:MaxPermSize=512m";

htopを使用して、実行中のプロセスの数を取得しました。システム上で実行中の Java プロセスが 20 を超えていることがわかりました。

20以上のプロセスの各プロセスは次のようになります。

PRI NI VIRT   RES    SHR S  CPU% MEM* TIME+    Command 
20   0 6028M 1290M 11140 S  0.0 16.2  0:01.21 /usr/lib/jvm/java-7-oracle/bin/java -Djava.util.logging.config.file

./bin/startup.sh で tomcat を起動すると、アプリケーションがエラーなしで起動します。さまざまなブラウザーでアプリケーションにアクセスすると、20 を超える Java プロセスが実行されます。私が実行している他の Java プロセスは、elasticsearch だけです。

  1. Tomcat がアプリケーションに対して非常に多くのプロセスを開始するのはなぜですか?
  2. それらを制限する必要がありますか?もしそうなら、どのように?
4

1 に答える 1

14

おそらくあなたが見ているのは、プロセスではなくスレッドです。あなたによるとman htop、コマンドを使用してインタラクティブにユーザースレッドを非表示にすることができますH

記録として、Tomcat は着信 HTTP 要求を処理するための多数のワーカー スレッドを作成します。(本当に) ワーカー スレッドの数を制御する必要がある場合は、それを行うための Tomcat 構成オプションがあります。

于 2013-08-17T15:33:36.377 に答える