什么消耗了文件描述符?

什么消耗了文件描述符?

我遇到一个问题,我的应用程序崩溃,说打开的文件太多。运行lsof | wc -l它说有 3447067 个打开的文件描述符,但是我无法找出是什么在使用这么多文件描述符。

我运行cat /etc/passwd以查找系统上的所有用户,然后lsof -u <user> | wc -l对所有这些用户进行查找,但我甚至没有接近使用的描述符数量。

有没有合理的方法来确定是什么消耗了这么多文件描述符?

答案1

for dir in /proc/[1-9]*/fd; do
    echo "$dir"
    cd "$dir" &>/dev/null || continue
    set -- *
    echo $#
    echo
done

这是 的输出lsof。我不知道为什么会有所不同。

lsof -F p | sort | uniq -c | sort -n

相关内容