![파일 설명자를 소비하는 것은 무엇입니까?](https://linux55.com/image/119294/%ED%8C%8C%EC%9D%BC%20%EC%84%A4%EB%AA%85%EC%9E%90%EB%A5%BC%20%EC%86%8C%EB%B9%84%ED%95%98%EB%8A%94%20%EA%B2%83%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
열린 파일이 너무 많아서 앱이 충돌하는 문제가 발생했습니다. 실행하면 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