리눅스 사용자별 오픈 파일 최대 갯수 늘리기
kernel 설정 변경
현재 kernel 설정 값을 proc file system 을 통해 확인
$ cat /proc/sys/fs/file-max
77688
BASH
하드 리미트. 소프트 리미트 확인
$ ulimit -Hn
4096
$ ulimit -Sn
1024
BASH
먼저 /etc/sysctl.conf 파일을 수정해서 커널 제한 늘리기
fs.file-max = 2097152
CODE
커널 설정 반영
사용자별 늘리기
설정 파일 오픈
vi /etc/security/limits.conf
BASH
httpd 사용자의 파일 제한 늘리기
httpd soft nofile 524288
httpd hard nofile 524288
nginx soft nofile 524288
nginx hard nofile 524288
BASH
저장하고 logoff 한 후에 해당 사용자로 로그인해서 설정 확인
su -c "ulimit -Hn" nginx
BASH
위 설정이 반영되지 않을 경우 /etc/pam.d/login 에서 pam_limits.so 를 로딩하는지 확인(참고 man limits.conf)
session required pam_limits.so
CODE
또는 /etc/security/limits.d/90-nproc.conf 같은 파일에 하드 코딩되어 있을수도 있음. 아래는 실제 하드 코딩된 사례
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 1024
root soft nproc unlimited
BASH
Ref