[에러] Too many open files 조치하는 방법 (ulimit 명령어)

리눅스/OS 일반|2022. 9. 14. 16:59
반응형

OS 내에서 작업중 어디에선가 아래와 같은 메세지가 출력될 경우 ulimit 를 활용해보도록 합니다.

 

에러 : 'Too many open files'

조치 : ulimit 명령어 사용

 

우선 많은 파일을 열기 위해서는 ulimit 에서 오픈가능한 파일의 최대 수를 조정해주어야 합니다.

OS 기본값은 1024 입니다.

동시에 여는 파일이 많을 수록 더 많은 메모리 양을 필요로 한다는 것을 참고 하고, 필요한 값으로 조정을 합니다.

예제에서는 50000으로 조정하는 내용을 담았습니다.

 

1. 현재 설정값 확인

 

# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 256092
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 256092
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

 

2. 설정값 변경 (일시적)

 

# ulimit -n 50000

 

(변경 내용 확인)

# ulimit -a |grep 'open files'
open files                      (-n) 50000

 

변경이 되었습니다. 하지만 재로그인 또는 리부팅의 작업을 거치면 다시 원래의 1024 값으로 돌아가므로

변경값이 기본으로 셋팅 되도록 해봅니다.

 

3. 설정값 변경 (영구적)

 

설정파일의 맨 아래에 아래 4줄 내용을 추가 하면 재로그인 또는 리부팅 후에도 변경된 값을 유지하게 됩니다.

설정 내용중 * 표시는 root 를 제외한 모든 계정을 의미합니다.

 

# vi /etc/security/limits.conf

 

root     soft nofile 50000

root     hard nofile 50000

*        soft nofile 50000

*        hard nofile 50000

 

 

반응형

댓글()