Eu tenho um servidor Debian 10 e estou tentando limitar a memória + troca de um usuário usando cgroups2.
Usar memory.limit_in_bytes
funciona bem, mas quero limitar o uso de troca de memória memory.memsw.limit_in_bytes
que não está funcionando.
Recebo este erro quando executo 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:~#
Aqui está o grupo:
group group1 {
memory {
memory.memsw.limit_in_bytes = 512m;
}
}
Alguma ideia do que há de errado?
EDIT: Já habilitei a memória cgroups e swapaccount no comando GRUB, mas o problema ainda ocorre.
Responder1
Obrigado a @doktor5000 por fornecer a respostaLimite o uso de memória para um único processo Linux
Concluí o seguinte dessa resposta: memory.limit_in_bytes
deve ser definido antes memory.memsw.limit_in_bytes
e memory.memsw.limit_in_bytes
deve ser maior ou igual amemory.limit_in_bytes
Então, no meu caso, esta configuração de grupo funcionou:
group group1 {
memory {
memory.limit_in_bytes = 512m;
memory.memsw.limit_in_bytes = 512m;
}
}
que visa limitar a memória + troca do usuário a 512 MB. Eu testei comhttps://github.com/julman99/eatmemory