GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cómo limitar el uso de recursos para un proceso dado?

Tengo un proceso para una aplicación que necesita ejecutarse, pero termina usando demasiado uso de IO para lo que hace. Y realmente bloquea mi computadora, por lo que es imposible hacer cualquier otra cosa mientras se está ejecutando.

Entonces, me preguntaba si hay una forma de limitar el uso de IO, RAM y CPU para un proceso determinado. Y sus subprocesos, por supuesto.

Esto está en mi sistema Ubuntu 18.04 LTS.

Mejor respuesta

Debe usar una combinación de todos los cgexec , cpulimit y ionice :

  1. Límite de RAM y SWAP:

    sudo cgcreate -g memory:/szMyGroup
    echo $(( 512 * 1024 * 1024 )) | sudo tee /sys/fs/cgroup/memory/szMyGroup/memory.limit_in_bytes
    echo $(( 1024 * 1024 * 1024 ))  | sudo tee /sys/fs/cgroup/memory/szMyGroup/memory.memsw.limit_in_bytes
    

    Los comandos anteriores crean un grupo de control llamado szMyGroup (Por ejemplo, en su caso group-great-uncle ), establezca un límite para los procesos que se ejecutan en szMyGroup hasta 512 MB de memoria física y hasta 1024 MB de intercambio y luego:

    sudo cgexec -g memory:szMyGroup szMyProgram
    

    que ejecutará su programa bajo el szMyGroup grupo de control, asegurando así que se adhieren a los límites

  2. limitar el disco IO:

    sudo ionice --class 3 --pid $(pgrep -f szMyProgram)
    

    El comando anterior usa pgrep con la reutilización de partes de la línea de comandos actual para limitar su acceso al disco para usar el disco solo cuando ningún otro programa lo esté usando

  3. Limite la CPU:

    sudo cpulimit --limit=25 --pid=!#:4
    

    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.


Ubuntu
  1. Cómo ver la información de uso de recursos en Plesk

  2. Aumente las conexiones TCP para Plex en Ubuntu

  3. Cómo establecer la ruta para los comandos sudo

  4. ¿Cómo limitar el uso de la memoria de la aplicación?

  5. Limite el uso de memoria para un solo proceso de Linux

Cómo cambiar el límite de tiempo para una sesión de Sudo

Cómo especificar el límite de tiempo para una sesión de Sudo

Cómo limitar el ancho de banda de la red en Ubuntu

Cómo especificar el límite de tiempo para una sesión de Sudo en Ubuntu 20.04 LTS

¿Cómo monitorear la información del límite de recursos en cPanel?

Cómo monitorear el uso de recursos y las métricas en cPanel