Limite de memória para navegador no Fedora

4

Eu gostaria de limitar o uso de memória para o Chromium (/ bin / chromium-browser) e o Firefox (/ bin / firefox) para todos os usuários.

Antes de me mudar para o Fedora eu estava usando cgroups para isso. No entanto, ouvi dizer que os cgroups do Fedora são obsoletos. Como posso definir o limite de 1 GB de RAM sem cgroups?

EDITAR: Eu tentei fazer isso com cgroups.

/etc/cgconfig.conf

group browsers { 
    memory { 
        memory.limit_in_bytes = 1024m;
        memory.memsw.limit_in_bytes = 1024m;
        memory.soft_limit_in_bytes = 1024m; 
    } 
}

/etc/cgrules.conf

*:/bin/chromium-browser memory browsers

mas depois

sudo service cgconfig start
systemctl status cgconfig.service

Estou recebendo

● cgconfig.service - Control Group configuration service
   Loaded: loaded (/usr/lib/systemd/system/cgconfig.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Sun 2018-06-24 13:41:07 CEST; 29min ago
  Process: 9239 ExecStart=/usr/sbin/cgconfigparser -l /etc/cgconfig.conf -s 1664 (code=exited, status=87)
 Main PID: 9239 (code=exited, status=87)

Jun 24 13:41:07 me systemd[1]: Starting Control Group configuration service...
Jun 24 13:41:07 me cgconfigparser[9239]: /usr/sbin/cgconfigparser; error loading /etc/cgconfig.conf: Cgroup, operation not allowed
Jun 24 13:41:07 me systemd[1]: cgconfig.service: Main process exited, code=exited, status=87/n/a
Jun 24 13:41:07 me systemd[1]: cgconfig.service: Failed with result 'exit-code'.
Jun 24 13:41:07 me systemd[1]: Failed to start Control Group configuration service.

Eu ficarei feliz com cgroups de trabalho ou abordagem alternativa sem cgroups.

    
por spam 24.06.2018 / 13:57

3 respostas

1

Outra abordagem é usar systemd-run e MemoryHigh controle de recursos, como

systemd-run --user --no-block -p MemoryHigh=1G firefox

MemoryHigh é um recurso do CGroup V2 e não está obsoleto. Conforme explicado em systemd.resource-control (5) manpage devemos deixar o systemd usar o CGroup V2. Para fazer isso, precisamos adicionar systemd.unified_cgroup_hierarchy=1 a GRUB_CMDLINE_LINUX_DEFAULT em /etc/default/grun e, em seguida, executar update-grub . Por favor, note que este controle de recursos está quebrado e não funciona em algumas versões do systemd, por exemplo. v239 (onde uma solução alternativa também está disponível) .

    
por 16.07.2018 / 06:29
0

Talvez timeout possa ajudá-lo: link

Da página do github:

-t T - configure o limite de tempo da CPU + SYS para T segundos

-m M - configure o limite de memória virtual para M kilobytes

Então, você precisa executar timeout -m 1000000 /bin/chromium-browser , por exemplo.

Você pode substituir a entrada do aplicativo / menu para executar o comando acima para mais conveniência.

    
por 24.06.2018 / 15:33
0

Você pode validar a sintaxe de seus arquivos de maneira interativa:

$ sudo cgconfigparser -l /etc/cgconfig.conf -s 640 -t your-uid:your-gid

Você precisa criar as permissões cgroup e associar

$ sudo cgcreate -a your-uid:your-gid -t your-uid:your-gid -g memory:browsers

Em seguida, tente iniciar seu navegador com os cgroups ativos:

$ cgexec -g memory:/browsers /bin/chromium-browser
    
por 24.06.2018 / 16:00