Búsqueda de sitios web

Cómo establecer límites para los procesos que ejecutan los usuarios en Linux


Una de las ventajas de Linux es que puedes controlar casi todo. Esto le da al administrador del sistema un gran control sobre su sistema y una mejor utilización de los recursos del sistema.

Si bien es posible que algunos nunca hayan pensado en hacer esto, es importante saber que en Linux puede limitar la cantidad de recursos que puede usar un solo usuario y durante cuánto tiempo.

Lea también: Cómo aumentar el límite de archivos abiertos en Linux

En este breve tema, le mostraremos cómo limitar la cantidad de procesos iniciados por usuario y cómo verificar los límites actuales y modificarlos.

Antes de continuar, hay dos cosas que debemos señalar:

  1. Necesita acceso root a su sistema para modificar los límites de usuario
  2. Debes tener mucho cuidado si planeas modificar estos límites

Para configurar los límites de usuarios, necesitaremos editar el siguiente archivo:


/etc/security/limits.conf

Este archivo se utiliza para aplicar ulimit creado por pam_module.

El archivo tiene la siguiente sintaxis:

<domain> <type> <item> <value>

Aquí nos detendremos en comentar cada una de las opciones:

  • Dominio: esto incluye nombres de usuario, grupos, rangos de guías, etc.
  • Tipo: límites blandos y estrictos
  • Elemento: el elemento que será limitado: tamaño del núcleo, tamaño del archivo, nproc, etc.
  • Valor: este es el valor para el límite dado

Una buena muestra de un límite es:

@student          hard           nproc                20

La línea anterior establece un límite estricto de un máximo de 20 procesos en el grupo "student".

Si desea ver los límites de un determinado proceso, simplemente puede “cat” el archivo de límites de esta manera:


cat /proc/PID/limits

Donde PID es el ID del proceso real, puede averiguarlo utilizando el comando ps. Para obtener una explicación más detallada, lea nuestro artículo que dice: Encuentre procesos en ejecución de Linux y establezca límites de procesos por nivel de usuario

Así que aquí hay un ejemplo:


cat /proc/2497/limits
Salida de muestra

Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        0                    unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             32042                32042                processes 
Max open files            1024                 4096                 files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       32042                32042                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us   

Todas las líneas se explican por sí mismas. Sin embargo, si desea encontrar más configuraciones que puede ingresar en el archivo limits.conf, puede consultar el manual que se proporciona aquí.

Si tiene alguna pregunta o comentario, no dude en enviarlo en la sección de comentarios a continuación.