cgroup을 사용하여 하위 프로세스가 없는 단일 프로세스에 대한 메모리 제한

cgroup을 사용하여 하위 프로세스가 없는 단일 프로세스에 대한 메모리 제한

프로세스의 메모리 사용량을 제한하고 모든 하위 프로세스를 무시해야 합니다. 어떻게 해야 하나요? cgroup을 사용하는 것이 선호되지만 필수는 아닙니다.

참고: 현재의 모든 내용을 무시하고 싶습니다.미래프로세스의 하위 프로세스입니다. 한계를 벗어날 수 있다는 것을 알고 있지만 그것이 바로 나에게 필요한 것입니다.

답변1

내 경우에는 prlimit --as=<virtual memory in bytes>도움이되었습니다 . (가상 메모리는 까다롭기 때문에) 항상 올바르게 작동하는 것은 아니므로 주의해서 사용하세요. 소프트 제한을 설정할 수도 있습니다.prlimit --as=<limit>:

예:

2GB의 가상 메모리 제한(소프트 및 하드 제한)으로 프로세스를 시작합니다.

prlimit --as=2147483648 -- process --with args

2GB의 가상 메모리 제한으로 프로세스 시작(소프트 제한만 해당)

prlimit --as=2147483648: -- process --with args

2GB의 가상 메모리 제한으로 프로세스 시작(하드 제한만 해당)

prlimit --as=:2147483648 -- process --with args

기존 프로세스를 2GB 가상 메모리로 제한

prlimit --as=2147483648 --pid=<process pid>

현재 셸의 가상 메모리를 2GB로 제한합니다.

prlimit --as=2147483648 --pid=$$

관련 정보