Limitación de recursos: ulimit, /etc/security/limits.conf
...
Introducción
Linux permite limitar los recursos que pueden consumir los usuarios y sus procesos: número de archivos abiertos, tamaño de procesos, número de procesos, etc. Esto evita que un usuario o proceso monopolice los recursos del sistema.
Dos mecanismos principales:
ulimit→ límites para la sesión actual del shell/etc/security/limits.conf→ límites persistentes por usuario o grupo
ulimit
Muestra o modifica los límites de recursos para la sesión actual del shell.
Ver todos los límites actuales:
$ ulimit -a
Ejemplo — limitar número de archivos abiertos:
$ ulimit -n 1024
Ejemplo — limitar el tamaño máximo de un fichero creado:
$ ulimit -f 512
El valor está en bloques de 512 bytes.
Opciones comunes:
- -a → muestra todos los límites
- -n → número máximo de ficheros abiertos
- -u → número máximo de procesos del usuario
- -f → tamaño máximo de fichero que puede crear el shell
- -v → memoria virtual máxima
- -S → límite blando (soft): puede superarse hasta el límite duro
- -H → límite duro (hard): techo máximo que no puede superarse
Los cambios con ulimit solo afectan a la sesión actual y no son persistentes.
/etc/security/limits.conf
Archivo de configuración para establecer límites persistentes de recursos por usuario o grupo. Los cambios aquí se aplican en el siguiente inicio de sesión.
Formato de cada línea:
dominio tipo elemento valor
- dominio → usuario, @grupo o * (todos)
- tipo → soft (blando) o hard (duro)
- elemento → el recurso a limitar (nofile, nproc, fsize...)
- valor → límite numérico
Ejemplo:
juan soft nofile 1024
juan hard nofile 4096
@devs soft nproc 100
* hard core 0
- juan puede abrir hasta 1024 ficheros (blando) y 4096 como máximo (duro)
- el grupo devs puede tener hasta 100 procesos
- nadie puede generar ficheros core