lsofとスレッドの理解に役立つ

lsofとスレッドの理解に役立つ

-p $PIDon を使用すると、lsofプロセスの直接スレッドのみが取得されます。スレッドとlsofを効果的に使用する理由と方法は何ですか?

sudo lsof -p 5344 > lsof-p5344.log
sudo lsof | grep  '\<5344\>' > lsofgrep5344.log

$ wc -l lsof*5344.log
  1,120,208 lsofgrep5344.log
      2,166 lsof-p5344.log

これは正確なプロセスのラインです。これはいいえ子プロセスについて。ここでは、awk出力フィールド2(lsof出力の2番目の列)をフィルタリングするために正確にプロセスPID番号を使用しています。

$ cat lsof-p5344.log  | awk '{print $2}' | grep '^5344$' | wc -l
2,165

$ cat lsofgrep5344.log  | awk '{print $2}' | grep '^5344$' | wc -l
1,120,207

最初の列「COMMAND」でフィルタリングすると、Javaアプリケーションの他のスレッドが表示され、1つは基本スレッドlsof -p(例:「COMMAND = java_daemon」)のみが表示され、lsof | grep多くのスレッド(例:「COMMAND = pool123」)が表示されます。 )、JMX、Java2D、Quartzなど」、ここで「PID」は5344に等しい)

ベストアンサー1

私のシステムにはlsof -kスレッド番号が表示されます。ただし、リソース(ファイル、メモリマップ...)がプロセス全体に割り当てられ(あるスレッドで開かれたファイルを別のスレッドで使用できる)、スレッドマイニングは関連性がないようです。

私のLinuxシステムでは、ファイルが開くとすぐに終了するスレッドを作成します。lsofファイルを開いたスレッドが存在しなくても、ファイルの表示は続行されます。

おすすめ記事