Linux에서 특정 사용자의 RAM 제한을 설정하려면 어떻게합니까? 2,097,152kb) 이상의 메모리를 사용할

특정 사용자에 대해 RAM 제한을 설정하려면 어떻게해야합니까? 나는 편집을 시도했다. /etc/security/limits.conf 파일 및 RAM 제한 거기,하지만 여전히 제한 설정된 사용자 프로세스를 참조하십시오.

한계가 kb로 지정되어 있으므로 잘못된 숫자를 사용하지 않습니다.

예를 들어, 나는 사용자가 2,048MB (또는 2,097,152kb) 이상의 메모리를 사용할 수 없도록 설정하려고하고 있으며, 프로그램은 2500mb와 같이 사용할 것입니다.

가상 머신없이이 작업을 수행 할 수있는 방법이 있습니까? 또한 옵션으로 가상 컴퓨터를 실행하지 않으려 고합니다.

여기 내거야. /etc/sysconfig/limits.conf.

또한 실행중인 커널 버전이 2.6.18이므로 RSS 제한이 무시됩니다.



답변

메모리와 관련된 컨트롤은 프로세스 리소스 제한을 통해 시행됩니다. 메모리와 관련된 프로세스 제한은 Linux에서 오랫동안 부분적으로 중단되었습니다. 예:

$ (ulimit -m 1; emacs)

Emacs가 시작되면 RSS 리소스 제한이 적용되지 않는 것입니다. 내가 작업 한 한계는 데이터 세그먼트와 스택 제한입니다.

$ (ulimit -d 1; emacs)
emacs: Memory exhausted--use M-x save-some-buffers RET
$ (ulimit -s 1; emacs)
$

따라서 “데이터”및 “스택”메모리 제한 만 사용하십시오. 이러한 제한이 적용되는 것 같습니다.


답변

프로세스 집합, 사용자 또는 그룹에 사용할 수있는 리소스를 제한하려면 다음을 사용할 수 있습니다. cgroups: https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt


답변