[질문]lsof 관하여
글쓴이: chaka4u / 작성시간: 목, 2003/05/29 - 9:58오전
Linux에서 open files과 관련하여 보통 확인하는 것이
/proc/sys/fs/file-max
/proc/sys/fs/file-nr
일 것입니다.
그런데 lsof와 위의 파일들과 어떤 관계가 있는 것인지요?
즉, lsof의 정확한 의미가 무엇이며 실제 open file과 어떤 관계가 있는지요?
또한 lsof | wc -l 의 값에 어떤 최대값은 있는지요?
현재 file-nr의 첫번째 값은 2000대인데, lsof | wc -l 의 값은
100000 이 넘어가는 경우가 발생하는데
이것이 문제가 될 가능성이 있을까요?
그럼, 좋은 하루되세요.
Forums:
커널 문서 중에
/usr/src/linux-2.4/Documentation/sysctl/fs.txt
위에 내용을 보시면 file-nr의 속성은 이해가 되실테고
lsof는 파일별로 공유하는 file structure 까지 다 나오니
많을 껍니다.
울랄라~ 호기심 천국~!!
http://www.ezdoum.com
답변에 감사드리며 재질문
먼저 답변을 해주신데 감사드립니다.
file-max나 file-nr의 값의 의미는 잘 알겠습니다.
실제로 제가 궁금한 것은 lsof의 결과입니다.
lsof또한 list of open files이므로 open file과 관련이 있을 것 같은데
서버내에서 어떤 한계치가 있는가 하는 것입니다.
lsof | wc -l 의 결과가 100000이 넘어가게 되면
문제가 발생하는 것 같은데 file-nr이나 기타 다른 부분을 체크해봐도
max값에 도달하지 않고 있습니다.
현재로서는 lsof의 결과에 협의를 두고 접근하고 있는데
lsof가 보여주는 데이타가 정확히 어느 부분을 read해서 보여주는 건가요?
lsof
lsof에서 보여주는것은 각 process에서 핸들링 하고 있는 file descriptor를
자세히 보여주는 것입니다. 만약 한 프로세스에서 파일하나를 열고 쓰레드를
띄우거나 fork를 했다면 각 쓰레드 마다 1개씩의 파일을 열고 있는것이 보일 것입니다. 물론 서로 공유하고 있는 부분이지만 lsof에서 볼때는 따로따로 각자
보여주는 것이지요.
즉 lsof에서 보이는 수를 단순하게 시스템에서 사용하는 전체 file open갯수
라고 보면 안된다는 것입니다. 그런데 십만개나 떠있다니.. 처음보는 경우입니다. ^^; 이상하군요.
그리고 커널 문서에 있는 file-nr 관련 설명은 일부 잘못되었습니다.
언제 업데이트 할런지 모르겠습니다. :?
file-nr의 가운데 숫자는 free file handle 갯수를 나타냅니다.
테스트 해보면 쉽게 알아챌수 있을 것입니다.
lsof 멘페이지를 보면
lsof 멘페이지를 보면
다양한 정보를 조회 하더군여
/proc/pid/fd/*
여기 정보도 조회를 하지만,
/proc/pid/mmap
같은 파일도 열어서 사용중인 공유 라이브러리등도 보여줍니다.
lsof도 결국 조사하는 것이
system call로 조사를 하는 것일테니
strace 해보시면 뭔짓을 하는지 알수 있을꺼 같네요
울랄라~ 호기심 천국~!!
http://www.ezdoum.com
댓글 달기