티스토리 뷰
소켓 통신을 하는 프로그램 에서는 sockfd를 사용하게 되는데 close( ) 를 하지 않아 파일에 접근할 수 없는 상황이 발생할 수 있다.
일반적으로 리눅스에서는 1024개로 지정 되어 있는데 이는 설정 파일에서 변경 가능하다.
현재 운영중인 서버에서 socket 통신 실패 후 계속 재 접속 시도를 하였는데 메인 프로세스의 로그가 남지 않았음을 확인 하였다.
프로세스 재 시작 후 로그가 다시 쌓이는 것을 확인 하였는데, 시스템은 잘 동작 하고 있었고 별 다른 특징이 없는 것을 감안하였을 때 fd 갯수가 의심 스러웠다.
테스트 서버에서 비슷한 환경을 구축하고 확인 해 보니 역시나 fd 문제였음
확인 방법은
1. 프로세스 ID를 확인한다.
2. lsof 명령어로 현재 사용 중인 fd 갯수를 확인 한다.
socket 연결 실패 시 close( ) 함수를 호출하도록 수정 후 문제가 해결 되었음
'IT 씨블랑 > Linux Tips' 카테고리의 다른 글
Top 메모리 사용 확인 (0) | 2018.02.21 |
---|