memory.memsw.limit_in_bytes: 잘못된 매개변수

memory.memsw.limit_in_bytes: 잘못된 매개변수

저는 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

관련 정보