Mar
27
사내에서 개발한 리눅스 플랫폼 프로그램을 테스팅하면서 File descriptor 를 감시해야 하는 경우가 생겼다.
Socket 을 열고 정상적으로 종료를 하는지 확인하는 내용이었는데.. 이를 위해서 lsof 유틸리티를 사용했다.
$ lsof -p [PID] | wc -l
의 명령어로 갯수를 확인하면서 open file descriptor 수를 감시했다.
그러던 중, lsof 의 결과 출력을 분석했는데 이상한 것이 있었다.
cbapid 5560 root 3u 0000 0,7 0 521 anon_inode cbapid 5560 root 4u 0000 0,7 0 521 anon_inode cbapid 5560 root 5r 0000 0,11 0 271110595 eventpoll cbapid 5560 root 6u 0000 0,7 0 521 anon_inode cbapid 5560 root 7r 0000 0,11 0 271110596 eventpoll cbapid 5560 root 8u 0000 0,7 0 521 anon_inode cbapid 5560 root 9u 0000 0,7 0 521 anon_inode cbapid 5560 root 10r CHR 1,9 0t0 97762892 /dev/urandom cbapid 5560 root 11r 0000 0,11 0 271110599 eventpoll
anon_inode 와 같이 나타난 file descriptor 들이 많이 있는 것을 확인한 것이다.
anon_inode 가 무엇이고 왜 나타나는 것일까?
해답은 다음과 같다.
anon_inode 는 anonymouse_inode 의 약자이며, epoll 을 사용할 경우, 감시대상 file descriptor 들을 관리하기 위해서 생성하고 사용하는 file descriptor 인 것이다.
즉, 내부적으로 epoll 을 사용하는 library 가 있다면 나타나는 정상적인 현상인 것이다.
Tags: Linux, anon_inode, epoll, inode, lsof