2011-01-28 8 views
1

私は、電子商取引アプリケーションを実行している実稼働環境にApache Tomcatサーバーを持っています。 mod_jkを使ってTomcat 6とApacheを使ってDebian Stableを実行しています。Apache Tomcatは常に3つの同一のプロセスを実行します

0:00 /usr/bin/jsvc -user tomcat6 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat6/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat6.pid -Djava.awt.headless=true -Xmx11000M -Xms11000M -Dsun.lang.ClassLoader.allowArraySyntax=true -verbose:gc -XX:+UseParallelGC -XX:ParallelGCThreads=6 -Dcom.sun.management.jmxremote -XX:+AgressiveHeap -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/usr/share/tomcat6 -Djava.io.tmpdir=/home/tomcat-temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties org.apache.catalina.startup.Bootstrap 
0:00 /usr/bin/jsvc -user tomcat6 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat6/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat6.pid -Djava.awt.headless=true -Xmx11000M -Xms11000M -Dsun.lang.ClassLoader.allowArraySyntax=true -verbose:gc -XX:+UseParallelGC -XX:ParallelGCThreads=6 -Dcom.sun.management.jmxremote -XX:+AgressiveHeap -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/usr/share/tomcat6 -Djava.io.tmpdir=/home/tomcat-temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties org.apache.catalina.startup.Bootstrap 
53:18 /usr/bin/jsvc -user tomcat6 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat6/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat6.pid -Djava.awt.headless=true -Xmx11000M -Xms11000M -Dsun.lang.ClassLoader.allowArraySyntax=true -verbose:gc -XX:+UseParallelGC -XX:ParallelGCThreads=6 -Dcom.sun.management.jmxremote -XX:+AgressiveHeap -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/usr/share/tomcat6 -Djava.io.tmpdir=/home/tomcat-temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties org.apache.catalina.startup.Bootstrap 

私はこれが問題かもしれないと怖い:私はTomcatを起動すると

することは、私は常にメモリ内の3つの同一のプロセスを受け取ります。私はちょうどプロセッサパワー(0時)を使用しないように、最初の2つをkillしようとしましたが、最初のものをやっと殺すと、他のプロセスも終了します。

このマシンには16Gしかありません。メモリは短いです。私が実際にこれらの3つのプロセスのそれぞれに11Gを割り当てると、これは私が最近したトラブルの一部になる可能性があります。

私の質問はこれです:これは正常ですか?グーグルの答えは、誰もこの問題を抱えていないか、誰も問題としてこれを察知していないようです。

ああ、pidファイルはCPU時間を使い果たすプロセスの名前です。

+0

これらは実際のプロセスであり、単一のプロセスのスレッドだけではありませんか? 'ps -eLf'を実行し、PID列とLWP列を確認してください。 – Wyzard

答えて

2

明らかに非アクティブな子スレッドは、outfile/errfileがSYSLOGに設定された結果として作成されます。メインの子プロセスからログメッセージを受け取り、それらをsyslogに渡します。

これを実証するには、outfileとerrfileを設定しない、またはそれらを通常のファイルに設定すると、親スレッドとメイン子スレッドのみが起動します。また、 'netstat -anp | grep jsvc'の違いを見ることができます。SYSLOGに出力すると余分なソケットが表示されます

これは心配するものではありません。期待される。

+0

すごい説明、ありがとう。 – 0xCAFEBABE

1

親プロセスIDを確認してください。おそらく1つの親と2つの子が表示されます。

は、歴史的に - 1にこれらを絞り込まれているPS /トップ - 多くのエントリは、新しいLinuxカーネルでhttp://wiki.apache.org/tomcat/FAQ/Linux_Unix

あたりのPSテーブルに登場しました。しかし、jsvcは2つのプロセス(ただし3ではなく)を説明する親子スタイルで起動します。

しかし、短いストーリーは、おそらく何も心配することはありません。

+0

ありがとう、そのトリックをした束。 – 0xCAFEBABE

関連する問題