web-dev-qa-db-ja.com

システムで実行されているプロセスの数に/ proc / statを使用する

システムで実行されているプロセスの実際の数を確認するにはどうすればよいですか。プロセスの数を数えるためにpsを使用することについて言及している記事がいくつかあります。しかし、最近cat /proc/sysを調べたところ、次のように出力されました。

cpu  972 0 1894 189609 236 26 490 0 0 0
cpu0 972 0 1894 189609 236 26 490 0 0 0
intr 101595 157 10 0 0 0 0 0 0 3 0 0 0 136 0 0 0 1406 0 0 14936 934 19133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 244344
btime 1405754990
processes 3912
procs_running 3
procs_blocked 0
softirq 122778 0 48263 439 15599 19037 0 1 0 7405 32034

プロセス数は3912と表示されます。ps -A --no-headers | wc -lなどを使用すると、173プロセスしか表示されません。

なぜ/proc/statはもっと多くのプロセスを表示するのですか? (3739プロセスの増加)正しい数を与えているのは誰ですか?

7
CMCDragonkai

proc(5) のドキュメントを見ると、processesフィールドでこれがわかります。

ブート以降のフォークの数。

したがって、それは単にあなたが探している数ではありません。 psは、ご存じのとおり、/procの下に名前に数字のみが含まれるディレクトリをカウントすることもできます。

11
Mat

スレッドを含めるかどうかに応じて、psコマンドに-Lオプションを追加します。

$ ps -A --no-headers | wc -l
359
$ ps -AL --no-headers | wc -l
967

デフォルトでは、スレッドはpsによって個別にリストされません。スレッドのポイントは、それらが複数の実行スレッド 1つの内部プロセスアドレス空間であることです。

12
Volker Siegel