lsof -p 커멘드의 출력값에 궁금한게 있어요..
리눅스 커멘트 창에서 lsof -p PID를 남겼을때 아래와 같은 결과값들이 출력됩니다.
다른 사람이 만든 소스를 분석중인데 Accept시 가끔 -1을 리턴할때가 있어서 확인해보니..
아래와 같이 약간은 dummy같은 파일 디스크립터들이 있네요..근데 이 녀석들이 뭘 의미하는지를 도저히 모르겠습니다.
아래와 같은 녀석들이 약 1000개 이상 생겨버려서 소켓을 생성하지를 못하네요..ㅠ.ㅠ
아래의 값들이 뭘 의미하나요??
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
parseServ 14822 root 82u unix 0x958cbc80 38676930 socket
parseServ 14822 root 83u unix 0xa2986900 56758373 socket
parseServ 14822 root 84u unix 0x453cb280 49730187 socket
parseServ 14822 root 85u unix 0x453cb880 44951195 socket
parseServ 14822 root 86u unix 0x624b4a80 44951196 socket
parseServ 14822 root 87u unix 0x4b073280 38676730 socket
parseServ 14822 root 88u unix 0x5168e100 44951197 socket
parseServ 14822 root 89u unix 0x6a627300 44951198 socket
parseServ 14822 root 90u unix 0x05a95680 36298568 socket
parseServ 14822 root 91u unix 0xbb9d7300 36298570 socket
parseServ 14822 root 92u unix 0x982c5500 36298589 socket
parseServ 14822 root 93u unix 0xba053900 36298594 socket
parseServ 14822 root 94u unix 0x1a8f5100 36298574 socket
parseServ 14822 root 95u unix 0x2e001080 36298572 socket
parseServ 14822 root 96u unix 0xae089d80 36298584 socket
parseServ 14822 root 97u unix 0x45b5c900 36298582 socket
parseServ 14822 root 98u unix 0x1a8f5300 36298583 socket
parseServ 14822 root 99u unix 0xd5fc7080 36298576 socket
parseServ 14822 root 100u unix 0xae089580 36298587 socket
parseServ 14822 root 101u unix 0xba053700 36298591 socket
parseServ 14822 root 102u unix 0x8f9ea880 36298595 socket
parseServ 14822 root 103u unix 0x65851a80 36298578 socket
음 ..
http://kldp.org/node/124609
위 글과 동일한 증상이네요.
그만큼 많은 수의 client 들이 parseServ 에 접속해 있다는 건데..
어떤 유형의 서버인지 모르기 때문에, 저게 정상인지 비정상인지 판단할 수는 없겠네요.
어쨌든 socket 역시 fd 와 마찬가지로 OPEN_MAX 의 영향을 받습니다.
더 많은 접속이 필요하다면, 커널 파라미터를 변경해서 시스템 디폴트 값을 변경할 수도 있고 ..
getrlimit(), setrlimit() 함수로 프로그램 내에서 적절하게 설정할 수 있습니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
댓글 달기