特定のプロセス ID に対して lsof コマンドが時間がかかりすぎる

特定のプロセス ID に対して lsof コマンドが時間がかかりすぎる

Centos 6.7 で、ラッパー プログラム経由で Java アプリケーションを実行しています。まずこれを実行しました。

lsof -p 15200 | wc -l and I got the results immediately as 200

次にこれを実行しましたが lsof -p 15232 | wc -l、時間がかかりすぎて、結果が生成されませんでした。開いているファイルの合計を取得するには、他にどのような方法を使用できますか? システムが一定時間後にハングし続けるため、それを知る必要があります。開いているファイルのサイズを増やす必要があるかもしれません。

答え1

次のようにすると、PID で識別されるプロセス (たとえば 15232) によって開かれたファイルの数を取得できます。

ls -l /proc/15232/fd | wc -l

からDebian リスト:

私は次の意味を理解しようとしています:

/proc/$PID/fd/*

ファイル。

これらは、pid が $PID であるプロセスの開いているファイルを指すリンクです。Fd は「ファイル記述子」の略で、UNIX のようなシステムでプログラムの入力または出力を識別する整数です。

lsofこれは、実際にコマンドが情報を取得してプロセスのファイルを提供する場所でもあります。

これは Linux カーネルの機能であり、ディストリビューションに依存しません。

関連情報