memory.memsw.limit_in_bytes: argumento inválido

memory.memsw.limit_in_bytes: argumento inválido

Eu tenho um servidor Debian 10 e estou tentando limitar a memória + troca de um usuário usando cgroups2.

Usar memory.limit_in_bytesfunciona bem, mas quero limitar o uso de troca de memória memory.memsw.limit_in_bytesque 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_bytesdeve ser definido antes memory.memsw.limit_in_bytese memory.memsw.limit_in_bytesdeve 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

informação relacionada