단일 프로세스의 리소스를 제한하는 방법에 대한 많은 질문과 답변이 있습니다. 예를 들어 RLIMIT_AS를 사용하여 프로세스에서 할당 한 최대 메모리를 제한하는 데 사용할 수 있습니다 top
. 예를 들어 여기에서 더 많은 주제 유닉스에서 특정 프로세스가 사용할 수있는 메모리의 양을 제한하는 방법이 있습니까?
setrlimit(2)
문서는 말합니다 :
fork (2)를 통해 생성 된 자식 프로세스는 부모의 리소스 제한을 상속합니다. 리소스 제한은 execve (2)에서 유지됩니다.
다음과 같은 방식으로 이해해야합니다.
프로세스의 RLIMIT_AS가 2GB 인 경우 2GB보다 많은 메모리를 할당 할 수 없습니다. 자식이 생성되면 주소 공간 제한 2GB가 자식으로 전달되지만 계산은 0부터 시작합니다. 두 프로세스는 함께 최대 4GB의 메모리를 사용할 수 있습니다.
그러나 전체 프로세스 트리에 의해 할당 된 총 메모리 양을 제한하는 유용한 방법은 무엇입니까?