리눅스 최대 열수 있는 파일 갯수 수정하기(Linux increase the max open files per user)

리눅스 사용자별 오픈 파일 최대 갯수 늘리기


kernel 설정 변경

현재 kernel 설정 값을 proc file system 을 통해 확인

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

77688


하드 리미트. 소프트 리미트 확인

$ ulimit -Hn
4096

$ ulimit -Sn
1024


먼저 /etc/sysctl.conf 파일을 수정해서 커널 제한 늘리기

fs.file-max = 2097152


커널 설정 반영

$ sudo sysctl -p



사용자별 늘리기

  1. 설정 파일 오픈

    vi /etc/security/limits.conf
  2. httpd 사용자의 파일 제한 늘리기

    httpd soft nofile 524288
    httpd hard nofile 524288
    
    nginx soft nofile 524288
    nginx hard nofile 524288
  3. 저장하고 logoff 한 후에 해당 사용자로 로그인해서 설정 확인

    su -c "ulimit -Hn" nginx
  4. 위 설정이 반영되지 않을 경우 /etc/pam.d/login 에서 pam_limits.so 를 로딩하는지 확인(참고 man limits.conf)

    session required pam_limits.so

    또는 /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


Ref