instância do usuário do limite de memória systemd não está funcionando

2

Estou usando o Arch Linux e a versão do systemd é 239. Eu inicializei o sistema com systemd.unified_cgroup_hierarchy = 1 parâmetro do kernel.

Eu fiz dois arquivos de unidade, limit.slice e malloc.service.

limit.slice é

[Unit]
Description=limit memory slice.

[Slice]
MemoryAccounting=yes
MemoryMax=100M

e malloc.service é

[Unit]
Description=memory consuming process

[Service]
ExecStart=/home/example/malloc_program
Slice=limit.slice

malloc_program é apenas manter as chamadas malloc () para consumir memória.

Eu coloquei esses arquivos em /home/example/.config/systemd/user/ e execute systemctl --user start malloc.service . O CGroup do serviço está abaixo de limit.slice conforme o esperado.

CGroup: /user.slice/user-1000.slice/[email protected]/limit.slice/malloc.service

Mas o processo continua sendo executado mesmo quando a memória usada ultrapassou 100 MB.

Não consigo entender por que a limitação de memória não está funcionando na instância do usuário ...

    
por R00T3D 19.08.2018 / 11:27

1 resposta

0

Tente definir o serviço malloc no arquivo .slice:

[Slice]
MemoryAccounting=true
MemoryLimit=100M
MemoryMax=100M
MemoryHigh=50M
    
por 19.08.2018 / 18:21