どのプロセスがあまりにも多くのオープンファイルを保持しているかを確認できるように、各プロセスとそのプロセスが開いているファイル記述子の数をリストする必要があります。いいえ、他の質問で要求されたように、プロセスに対して開かれたファイルの数だけが必要ではありません。実行中の各プロセスの数を降順に知っておく必要があります。
lsofはこれができないようです。これを行うことができる他のユーティリティやデバイスはありますか?
ベストアンサー1
私は次のことをします:
sudo lsof -FKc |
awk '
function process() {
if (pid || tid) {
print n, \
tid ? tid " (thread of " pid ": " pname")" : pid, \
name
n = tid = 0
}
}
{value = substr($0, 2)}
/^p/ {
process()
pid = value
next
}
/^K/ {
tid = value
next
}
/^c/ {
name = value
if (!tid)
pname = value
next
}
/^f/ {n++}
END {process()}' | sort -rn
公開数量の場合文書、開いた数に/^f/
置き換えられます。/^f[0-9]/
ファイル記述子。