/etc/sysctl.conf와 /etc/security/limits.conf에서 열린 파일 제한을 설정하는 것의 차이점은 무엇입니까?

/etc/sysctl.conf와 /etc/security/limits.conf에서 열린 파일 제한을 설정하는 것의 차이점은 무엇입니까?

나는 허용된 열린 파일 수를 늘리는 두 가지 다른 방법에 대해 읽었습니다(중요한 경우 루트에 대해 수정하려고 합니다).

/etc/security/limits.conf한 가지 방법은 다음과 같이 설정을 업데이트하는 것입니다.

*                soft    nofile          500000

*                hard    nofile          500000

root             soft    nofile          500000

root             hard    nofile          500000

활성 셸을 설정하려면 ulimit -n 500000재부팅이나 로그아웃/로그인이 필요하지 않지만 서비스를 다시 시작(?)해야 할 수 있는 이렇게 할 수 있는 것처럼 보입니다.


또 다른 옵션은 다음을 업데이트하는 것입니다 /etc/sysctl.conf.

echo 'fs.file-max = 500000' >> /etc/sysctl.conf

활성 셸을 설정 sysctl -p하려면 sysctl fs.file-max.

그래서 내 질문은 차이점이 무엇입니까? 그것을 가지고? 온라인 중Ubuntu 14.04.2 LTS

답변1

차이점은 범위와 적용 방법에 있습니다. sysctls를 통해 설정된 열린 파일 제한은 전체 시스템에 적용되는 반면, sysctls를 통해 설정된 제한은 /etc/security/limits.conf여기에 지정된 조건을 충족하는 콘텐츠에만 적용됩니다. 또 다른 주요 차이점은 /etc/security/limits.conf제한이 ulimit를 통해 적용되므로 더 쉽게 변경할 수 있는 반면, sysctl 제한은 본질적으로 커널 자체에서 메모리 할당 제한을 설정한다는 것입니다.

일반적으로 /etc/security/limits.conf와일드카드 일치를 설정하더라도 거의 항상 전역 제한을 사용하기를 원합니다. 왜냐하면 이것이 좀 더 안정적이고 커널 메모리 할당 제한에 직면할 때보다 ulimit 제한에 직면할 때 일반적으로 더 정상적으로 실패하기 때문입니다.

관련 정보