Tengo un proceso para una aplicación que necesita ejecutarse, pero termina usando demasiado IO para lo que hace. Y realmente bloquea mi computadora, haciendo imposible hacer cualquier otra cosa mientras se está ejecutando.
Entonces, me preguntaba si hay una manera de limitar el uso de E / S, RAM y CPU para un proceso determinado. Y sus subprocesos, por supuesto.
Esto está en mi sistema Ubuntu 18.04 LTS.
ionice
,renice
y quizásulimit -s
comandos, y eso es todo.cgroups-io
así que no tengo idea :)Respuestas:
Debe utilizar una combinación de todos
cgexec
,cpulimit
yionice
:Límite de RAM y SWAP:
Los comandos anteriores crean un grupo de control llamado
szMyGroup
(por ejemplo, en su casogroup-great-uncle
), establecen un límite para los procesos ejecutados conszMyGroup
hasta 512 MB de memoria física y hasta 1024 MB de intercambio y luego:que ejecutará su programa bajo el
szMyGroup
grupo de control, asegurando así que cumplan con los límiteslimitar el disco IO:
El comando anterior se usa
pgrep
con la reutilización de partes de la línea de comandos actual para limitar su acceso al disco para usar solo el disco cuando ningún otro programa lo está usandoLimite la CPU:
La CPU del programa ahora está limitada al 25% del máximo
Si el programa no usa mucha CPU para empezar, reduzca el valor de cpulimit a la mitad o menos de lo que usa actualmente.
fuente