728x90
Too many open files 해결하기
출처 : http://blog.leekyoungil.com/?p=219
IO 관련해서 개발을 하다보면 자주 마주치는 부분중 하나가 이 오류일 것이다.
java.io.IOException: Too many open files
일단 해당 메시지로 구글 검색을 하면 대부분 해결책이
“시스템의 open files 를 올려라 리눅스의 경우 ulimit -n 65535” 이정도 및 limit.conf 파일 수정 하는 것이
나오는 것이 대부분 일것이다.
하지만 그전에 프로그램에서 뭔가 파일을 열고 닫는 부분에서 버그가 있어야 하지 않을까? 라는 것으로 접근하는 것이
가장 우선시 되어야 할 사항 이라고 생각한다.
일단 이렇게 접근 하기 위해서는 프로그램이 실행이 될때 (어떠한 액션이 발생할때) 지금 열린 파일의 갯수를 알아야 할것이 아닌가?
os 가 linux 라고 가정 할때 대상 프로세스에서 열린 파일의 수를 실시간으로 확인이 가능한 간단한 스크립트를 소개하겠다.
가령 대상 프로세스가 java 프로세스라고 가정하면
shell # ps aux | grep java
해당 프로세스 리스트를 확인하면
아래와 같이 593228 라는 프로세스 아이디가 나온다.
그러면 아래처럼 linux shell 상에서 명령어를 실행하면…
라고 실행하면 2초 단위로 해당 프로세스에서 열린 파일의 갯수가 출력되니 디버깅에 참고하기 바란다.
반응형
'Language > JAVA' 카테고리의 다른 글
[JAVA] 정규표현식, Matcher 메서드 사용방법과 그룹 개념이해 (0) | 2017.05.02 |
---|---|
log4j, 파일, 디비 DB, JDBCAppender, 중복, 로그, MDC, NDC (0) | 2017.04.14 |
html 이미지 태그 src 값 추출 (0) | 2017.02.21 |
[Java] Google Authenticator(Google OTP)를 이용한 개발. (0) | 2016.09.26 |
Time-based One-Time Password Algorithm RFC6238 (0) | 2016.09.26 |