[LINUX] Too many open files 해결 방법

리눅스에서 Too many open files 에러가 발생했을 때의 해결 방법에 대해서 알아보겠습니다.

/var/log/messages 파일에 Too many open files 에러 메시지가 발생

 

How to solve 'Too many open files' error

프로세스가 운영체제에 요청할 수 있는 최대 Open 가능한 파일 개수에 limit가 걸려 있어 초과 시 발생하게 됩니다.

 

파일 오픈 limit 확인 방법

소프트웨어 open files 확인

# ulimit -aS

소프트웨어에서의 파일에 관련된 설정 값들을 확인할 수 있습니다.

open files 항목을 보시면 1024로 되어 있는 것을 확인할 수 있습니다.

 

하드웨어 open files 확인

# ulimit -aH

하드웨어에서의 파일에 관련된 설정 값들을 확인할 수 있습니다.

 

시스템 open files 확인

# cat /proc/sys/fs/file-max

시스템 전체의 limit 설정 값 확인

 

 

file open limit 값 수정하기

open files limit 변경

/etc/security/limits.conf 에서 config 값을 수정해 줍니다.

 

root hard nofile 65535
root soft nofile 65535
client hard nofile 65535 (추가) -> 특정 유저계정에 지정하기 위함.
client soft nofile 65535 (추가) -> 특정 유저계정에 지정하기 위함.
* hard nofile 65535 (추가) -> 모든 유저계정에 지정하기 위함.
* soft nofile 65535 (추가) -> 모든 유저계정에 지정하기 위함.

 

ulimit -n 변경

# ulimit -n 65535

limit open files 즉시 적용

 

ulimit 확인

# ulimit -a

limit 값들 확인

 

ulimit 옵션

-a : 모든 제한 사항을 보여줌.

-c : 최대 코어 파일 사이즈

-d : 프로세스 데이터 세그먼트의 최대 크기

-f : shell에 의해 만들어질 수 있는 파일의 최대 크기

-s : 최대 스택 크기

-p : 파이프 크기

-n : 오픈 파일의 최대수

-u : 오픈파일의 최대수

-v : 최대 가상메모리의 양

-S : soft 한도

-H : hard 한도

 

댓글

Designed by JB FACTORY