리눅스2023. 9. 6. 13:22

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/630731 (2019.9.10)

리눅스에서 한꺼번에 많은 파일을 인자(argument)로 지정했을 때 "too many open files" 메시지가 나올 수 있는데, 이 경우에 최대로 열 수 있는 파일의 개수를 늘려주어야 한다.

우선 현재 설정된 기본값을 확인해 보자. ulimit 명령에서 열린 파일(open files)의 최대 제한값은 -n 옵션으로 확인 가능하다. 제한값의 종류는 hard limit와 soft limit 두가지가 있는데 hard limit는 말 그대로 넘을 수 없는 제한값이고, soft limit는 현재 설정되어 있는 값으로 반드시 hard limit 이하여야 한다.

# 열린 파일 개수 최대치 확인(-n 옵션, hard limit)
ulimit -Hn

# 열린 파일 개수 최대치 확인(-n 옵션, soft limit)
ulimit -Sn

특별히 설정하지 않았다면 열린 파일 수의 hard limit는 4096, soft limit는 1024일 것이다. 이 수치를 늘려주어야 하겠다. 이 설정은 /etc/security/limits.conf 파일에서 설정된다.

예를 들어 사용자 계정 john에 대해서 열 수 있는 파일 개수 제한을 충분히 크게 지정해 주려면, /etc/security/limits.conf 파일에 파일 개수 제한 설정을 추가해 주면 된다. 시스템 설정 파일이므로 루트 권한을 필요로 한다.

# /etc/security/limits.conf 파일 편집
sudo vi /etc/security/limits.conf

limits.conf 파일에 아래의 내용을 추가해 주자. 사용자 john에 대해서 열 수 있는 파일 개수 제한을 50만개로 지정한 경우다.

john  hard  nofile  500000
john  soft  nofile  500000

설정을 저장하고 나서, 변경된 설정값이 반영되려면 로그아웃했다가 다시 로그인하면 된다.

728x90
Posted by 반달가면