2011-12-20 8 views
3

Linuxサーバー(fedora)では、JBoss Application Serverを1つ実行し、quartzを使用してタスクをスケジュールします。 昨日は、 linuxトップのJavaスレッドを表示しますか?

は私が

が表示されている別のPIDを持つJavaという名前の複数のプロセスを参照してくださいビュープロセスの状態にtopコマンドを使用します。

ps aux | grep javaを使用すると、1つのJavaプロセス(Jboss AS)のみが表示されますか? だから私の質問は次のようになります。

は、ネイティブのLinuxスレッド(クローン化されたプロセス)にマッピングされたJavaのスレッドである、またはスレッドを表示topないのですか?

ENV:

  1. Kernerl:2.6.18
  2. JDK:1.6.0-23

答えて

6

それは様々なツールのご使用のバージョンに依存します。ほとんどの場合、topのバージョンはLinux上のスレッドとプロセスの関係を理解し​​ていないため、各スレッドを独自のプロセスとして間違って表示しています。 Javaスレッドの実装はあなたのVMに依存しますが、現代のJVMとLinuxバージョンの典型的な実装は1対1です。すなわち、各Javaスレッドはcloneシステムコールによって作成されたLinux KSEです。

過去3年以内にLinuxディストリビューションがリリースされた場合は、この問題は発生しません。

+0

これはlinuxで修正されてから3年以上経っているのが気に入っています... – jtahlborn

+1

2005年に完全にサポートされているディストリビューションが最初に利用可能になりました。しかし、修正のないディストリビューションは完全に更新され、サポートされ、 2008年まで。 –

関連する問題