CentOS ulimit 값 변경 (Too many open files Tomcat Error and NoClassDefFoundError)
Too many open files Tomcat Error and NoClassDefFoundError 에러가 톰캣에서 발생할 때 해결하는 방법이에요
OS에서 파일 갯수를 제한하고 있는데 이걸 늘려줌으로써 해결할 수 있어요
centos 상에서 ulimit 값은 아래와 같이 디폴트로 설정되어있어요
(ulimit -a 쳐보면 나와요) --> 현재 로그인 된 계정의 설정 값이 보임
/proc/[pid]/limits : 이것을 통해 프로세스에 적용된 limit 정보도 확인 가능
이 값은 실행중인 파일이나 프로세스가 증가함에 따라 문제가 일으킬 수 있어요
open files 값이나 max user processes 값이 적어서 생기는 문제에요
이럴땐
/etc/security/limits.conf로 들어가서
제일마지막에
root hard nofile 65535
root soft nofile 65535
root hard nproc 65535
root soft nproc 65535
이걸 추가해주고 centos를 재시작해주면 끝! --> 재시작 안해도 되는 듯 합니다.
그럼 ulimit -a명령어를 쳤을 경우 아래처럼 값이 변경되요
위의 방법은 user lever open file 갯수 조정하는 방법이고
전체 조정 방법은
최대 open file 갯수 조회 방법
#cat /proc/sys/fs/file-max
#sysctl fs.file-max
로 조회가 가능하고
vi /etc/sysctl.conf에 들어가서 fs.file-max=66536과 같은 방식으로 조정이 가능해요