Eu tenho um processo para um aplicativo que precisa ser executado, mas acaba usando muito uso de IO para o que faz. E realmente trava meu computador, tornando impossível fazer qualquer outra coisa enquanto estiver em execução.
Então, eu queria saber se existe uma maneira de limitar o uso de IO, RAM e CPU para um determinado processo? E seus subprocessos, é claro.
Este é o meu sistema Ubuntu 18.04 LTS.
ionice
,renice
- e talvezulimit -s
comandar, e é isso.cgroups-io
isso, não tenho ideia :) #Respostas:
Você deve usar uma combinação de todos
cgexec
,cpulimit
eionice
:Limite de RAM e SWAP:
Os comandos acima criam um grupo de controle chamado
szMyGroup
(por exemplo, no seu casogroup-great-uncle
), defina um limite para os processos executados comszMyGroup
até 512 MB de memória física e até 1024 MB de swap e, em seguida:que executará seu programa no
szMyGroup
grupo de controle, garantindo que eles cumpram os limiteslimite o IO do disco:
O comando acima é usado
pgrep
com a reutilização de partes da linha de comando atual para limitar o acesso ao disco e usá-lo apenas quando nenhum outro programa estiver usandoLimite a CPU:
A CPU do programa está agora limitada a 25% do máximo
Se o programa não usar muita CPU para começar, diminua o valor de cpulimit para metade ou menos do que atualmente usa.
fonte