Ubuntu 및 Debian에서 열린 파일 제한을 늘리는 방법

Ubuntu 및 Debian에서 열린 파일 제한을 늘리는 방법

2022-10-18 last update

5 minutes reading ulimit linux command
때때로 우리는 Linux 시스템에서 "열린 파일이 너무 많음"과 같은 문제에 직면했습니다. 그것은 우리 서버가 최대 열린 파일 제한에 도달했음을 의미합니다. 이는 모든 사용자 또는 세션에 대해 시스템에서 설정한 리소스 제한으로 인해 발생합니다. 예를 들어 생성된 파일의 최대 크기, 메모리에 잠길 수 있는 최대 크기, 사용된 최대 CPU 시간, 허용되는 최대 프로세스 수, 사용 가능한 가상 메모리의 최대 크기입니다. 기본적으로 두 가지 유형의 제한이 있습니다.
  • 하드 제한은 수퍼유저/루트가 설정하는 사용자 또는 세션에 허용되는 최대 제한입니다.
  • 소프트 제한은 사용자 또는 세션에 대한 현재 유효 값입니다. 하드 한계까지 사용자에 의해 증가할 수 있습니다.
  • 전류 제한 확인

    ulimit 명령은 셸을 통해 각 사용자가 사용할 수 있는 리소스에 대한 제어를 제공합니다. 아래 명령을 사용하여
    현재 설정을 가져옵니다.
    ulimit -a
    
    현재 하드 제한 또는 소프트 제한을 보려면 다음 명령을 사용하십시오.
    ulimit -Sn       # Check soft limit
    ulimit -Hn       # Check hard limit
    

    현재 세션에 대한 한도 증가

    대부분의 운영 체제는 ulimit -n 명령을 사용하여 현재 셸 세션에 대한 파일 열기 제한을 변경할 수 있습니다.
    ulimit -n 200000
    

    사용자당 한도 증가

    Debian 기반 Linux 시스템에서 사용자별 파일 열기 제한을 정의할 수 있습니다. 사용자별 제한을 설정하려면 텍스트 편집기에서/etc/security/limits.conf 파일을 편집하십시오.
    sudo vim /etc/security/limits.conf
    
    파일에 다음 값을 추가합니다.
    * 	 soft     nproc          65535
    * 	 hard     nproc          65535
    * 	 soft     nofile         65535
    * 	 hard     nofile         65535
    jack 	 soft     nproc          200000
    jack 	 hard     nproc          200000
    jack 	 soft     nofile         200000
    jack 	 hard     nofile         200000
    
    여기에서 사용자 "jack"에 대해 200000이고 나머지 사용자에 대해 65535가 적용되는 별도의 제한을 지정합니다. 요구 사항에 따라 이러한 값을 변경할 수 있습니다. 그런 다음 pam_limits를 다음과 같이 활성화합니다.
    sudo vim /etc/pam.d/common-session
    
    다음 줄을 추가합니다.
    session required pam_limits.so
    

    시스템 전체 제한 증가

    sysctl 구성 파일을 편집하여 시스템 전체에 제한을 설정할 수도 있습니다. sysctl.conf 파일을 편집하십시오.
    vim /etc/sysctl.conf 
    
    다음 행을 추가하십시오.
    fs.file-max = 2097152
    
    그런 다음 다음 명령을 실행하여 위의 변경 사항을 적용하십시오.
    sysctl -p
    
    위의 변경 사항으로 인해 시스템 전체에서 열려 있는 최대 파일 수가 증가합니다. 특정 사용자 제한은 시스템 전체 제한보다 높을 수 없습니다.