Cómo limitar el uso de tiempo y memoria de los procesos en Linux

Cómo limitar el uso de tiempo y memoria de los procesos en Linux

El script timeout. es un programa de monitoreo de recursos útil para limitar el consumo de tiempo y memoria de los procesos en Linux. Le permite ejecutar programas bajo control y hacer cumplir los límites de tiempo y memoria, terminando el programa en caso de violación de estos parámetros.

No se necesita instalación, simplemente ejecute un comando junto con sus argumentos usando timeout. programa y monitoreará la memoria del comando y el consumo de tiempo, interrumpiendo el proceso si se sale de los límites, y te notifica con el mensaje predefinido.

Para ejecutar este script, debes tener Perl 5. instalado en su sistema Linux y el sistema de archivos/proc montado.

Para verificar la versión instalada de Perl. en su sistema Linux, ejecute el siguiente comando .

$ perl-v Verificar la versión de Perl en Linux  Verificar la versión de Perl en Linux Verifique la versión de Perl en Linux

Luego, clone el timeout. en su sistema usando el comando git, luego muévase al repositorio local usando el comando cd e invocalo como un comando habitual de Linux.

$ cd ~/bin $ git clone https://github .com/pshved/timeout.git $ cd timeout freestar.config.enabled_slots.push (LocationName: “tecmint _incontent “, slotId:” tecmint_incontent “);

Veamos ahora cómo funciona el script timeout.

Limitación de memoria básica (100M de memoria virtual):

Este primer ejemplo muestra cómo limitar el uso de memoria de un proceso a 100M. de memoria virtual, usando el indicador-m. La unidad predeterminada para la memoria está en kilobytes.

Aquí, el comando stress-ng ejecuta 4 factores de estrés de memoria virtual (VMS) que se combinan para usar 40%. de la memoria disponible durante 10 minutos. Por tanto, cada factor de estrés. utiliza el 10%. de la memoria disponible.

$ ./timeout-m 100000 stress-ng–vm 4–vm-bytes 40%-t 10m  Limitando la memoria del proceso  Limitación de la memoria del proceso Limitación de la memoria de proceso

Teniendo en cuenta el resultado del comando timeout. anterior, los procesos de trabajo stress-ng. terminaron después de solo 1,16. segundos. Esto se debe a que el consumo de memoria combinado del VMS. ( 438660 kilobytes. es mayor que el uso de memoria virtual permitido para stress-ng. y su hijo procesos.

Limitación de tiempo básica del proceso:

Para habilitar la limitación de tiempo del proceso, use la marca-t como se muestra.

$ ./timeout-t 4 stress-ng–vm 4–vm-bytes 40%-t 10m Límite de tiempo del proceso  Límite de tiempo del proceso Límite de tiempo del proceso

En el ejemplo anterior, cuando el tiempo stress-ng. CPU + SYS. excede el valor definido de 4. los procesos de trabajo se eliminan.

Limitar tanto el tiempo como la memoria del proceso

También puede limitar la memoria. y el tiempo. a la vez de la siguiente manera.

$ ./timeout-t 4-m 100000 stress-ng–vm 4–vm-bytes 40%-t 10m

Timeout también admite algunas opciones avanzadas como–detect-hangups, que habilita la detección de cuelgues.

$ ./timeout–detect-hangups-m 100000 stress-ng–vm 4–vm-bytes 40%-t 10m

Puede monitorear Límite de memoria RSS. ( tamaño del conjunto residente. mediante el modificador–memlimit-rss o-s.

$ ./timeout-m 100000-s stress-ng–vm 4–vm-bytes 40%-t 10m

Además, para devolver el código de salida o la señal + 128 de un proceso, use la opción–confess o-c como se muestra.

$ ./timeout-m 100000-c estrés-ng–vm 4–vm-bytes 40%-t 10m

Para obtener más información y ejemplos de uso, consulte el repositorio timeout. de Github: https://github.com/pshved/timeout.

También puede encontrar estos siguientes artículos relacionados igualmente útiles:

  1. Cómo encontrar los 15 procesos principales por uso de memoria con ‘top’ en modo por lotes
  2. CPUTool-Limitar y controlar la utilización de CPU de cualquier proceso en Linux
  3. Cómo limitar el uso de CPU de un proceso en Linux con la herramienta CPULimit

El script timeout. es un programa simple de monitoreo de recursos que esencialmente restringe el tiempo y el consumo de memoria de los procesos en Linux. Puede enviarnos sus comentarios sobre la secuencia de comandos timeout. a través del formulario de comentarios a continuación.