172

Linuxの特定のプロセスで使用されるスレッドの数を監視したいと思います。プロセスのパフォーマンスに影響を与えることなく、この情報を取得する簡単な方法はありますか?

4

18 に答える 18

174

試す

ps huH p <PID_OF_U_PROCESS> | wc -l

またはhtop

于 2008-11-07T16:56:09.097 に答える
113

特定の pid のスレッド数を取得するには:

$ ps -o nlwp <pid>

Number of Light Weight Processes (threads) のnlwpです。したがって、へのエイリアスです。つまり、psnlwpthcount

$ ps -o thcount <pid>

も機能します。

スレッド数を監視したい場合は、単に次を使用しますwatch

$ watch ps -o thcount <pid>

システムで実行されているすべてのスレッドの合計を取得するには:

$ ps -eo nlwp | tail -n +2 | awk '{ num_threads += $1 } END { print num_threads }'
于 2016-06-08T21:28:46.560 に答える
67

プロセス内の各スレッドは、 の下にディレクトリを作成します/proc/<pid>/task。ディレクトリの数を数えると、スレッドの数がわかります。

于 2011-08-27T19:07:03.727 に答える
45
cat /proc/<PROCESS_PID>/status | grep Threads
于 2015-04-21T12:51:13.610 に答える
8

使用する場合:

ps uH p <PID_OF_U_PROCESS> | wc -l

「wc」が数えている行の1つは「ps」コマンドのヘッダーであるため、結果から1を引く必要があります。

于 2011-08-27T18:24:15.970 に答える
6

JStackは非常に安価です。1つのオプションは、出力をgrepにパイプしてアクティブなスレッドを見つけてから、wc-lにパイプすることです。

よりグラフィカルなのはJConsoleで、特定のプロセスのスレッド数を表示します。

于 2008-11-06T13:36:37.703 に答える
6

特定のプロセスのスレッド数を表示する 1 つのコマンドを次に示します。

ps -L -o pid= -p <pid> | wc -l

他のpsベースの回答とは異なり、オプションのおかげでヘッダー行1がないため、出力から減算する必要はありません。ps-o pid=

于 2014-01-20T21:31:41.310 に答える
6

私の答えはより多くのGUIですが、それでも端末内にあります。Htop は、ちょっとした設定で使用できます。

  1. トップを起動します。
  2. F2 を押して設定メニューに入ります。
  3. 一番左の列から「列」を選択します
  4. 右端の列から、メインの監視出力に追加する列を選択します。探しているのは「NLWP」です。
  5. F10 を押します。
于 2020-09-12T04:13:35.143 に答える
4

新しいJDKディストリビューションには、JConsoleとVisualVMが付属しています。どちらも、実行中のJavaプロセスからダーティな詳細を取得するための素晴らしいツールです。これをプログラムで行う必要がある場合は、JMXを調べてください。

于 2008-11-06T13:39:56.697 に答える
2

jvmtopは、他のメトリックの横に現在の jvm スレッド数を表示できます。

于 2013-03-14T10:33:50.450 に答える
2

複数のプロセスのスレッド数を探している場合、プロセス名や PID が表示されず、役に立たないため、他の回答はうまく機能しません。代わりにこれを使用してください:

ps -o pid,nlwp,args -p <pid_1> <pid_2> ... <pid_N>

変更をライブで見るには、以下を追加するだけwatchです:

watch ps -o pid,nlwp,args -p <pid_1> <pid_2> ... <pid_N>
于 2021-02-10T09:47:19.720 に答える
1

特定の pid に対して cpu を使用してスレッドの数を調べようとしている場合は、次を使用します。

top -bc -H -n2 -p <pid> | awk '{if ($9 != "0.0" && $1 ~ /^[0-9]+$/) print $1 }' | sort -u | wc -l
于 2017-02-16T14:49:45.627 に答える
-1

VisualVM は、特定の JVM プロセスのスレッドの明確な状態を表示できます

ここに画像の説明を入力

于 2015-12-22T09:41:45.343 に答える