저는 Debian 10 서버를 가지고 있고 cgroups2를 사용하여 사용자의 메모리와 스왑을 제한하려고 합니다.
사용하면 memory.limit_in_bytes
잘 작동하지만 메모리 + 스왑을 제한하고 싶은데 사용하면 memory.memsw.limit_in_bytes
작동하지 않습니다.
다음을 실행할 때 이 오류가 발생합니다 cgconfigparser
.
root@server:~# cgconfigparser -l /etc/cgconfig.conf
Error: failed to set /sys/fs/cgroup/memory/group1/memory.memsw.limit_in_bytes: Invalid argument
cgconfigparser; error loading /etc/cgconfig.conf: Failed to remove a non-empty group
root@server:~#
다음은 그룹입니다.
group group1 {
memory {
memory.memsw.limit_in_bytes = 512m;
}
}
무슨 문제가 있는지 아시나요?
편집: GRUB 명령에서 cgroups 메모리와 swapcount를 활성화했지만 문제가 계속 발생합니다.
답변1
답변을 제공해 주신 @doktor5000에게 감사드립니다.단일 Linux 프로세스의 메모리 사용량 제한
이 답변에서 제가 결론을 내린 것은 memory.limit_in_bytes
이전에 설정되어야 하며 memory.memsw.limit_in_bytes
다음 memory.memsw.limit_in_bytes
보다 크거나 같아야 한다는 것입니다.memory.limit_in_bytes
제 경우에는 다음 그룹 구성이 작동합니다.
group group1 {
memory {
memory.limit_in_bytes = 512m;
memory.memsw.limit_in_bytes = 512m;
}
}
이는 사용자의 메모리 + 스왑 공간을 512MB로 제한하는 것으로 보입니다. 나는 테스트했다https://github.com/julman99/eatmemory