Limitando el uso de recursos con ulimit
El comando ulimit (user limit) permite establecer los límites de uso de recursos del sistema, esto evita que un proceso de un usuario pueda bloquear el sistema por haber consumido todos los recursos del mismo.
Hay dos tipos de límites, el límite duro (hard) que establece el límite físico al que el usuario puede llegar y el límite blando (soft) que es el límite establecido para el usuario pero que puede ser modificado por el usuario hasta llegar el límite duro.
Se pueden establecer límites globales a través de los parámetros del Kernel, por ejemplo aumentar el límite de archivos abiertos a 300000 se utilizaría el siguiente comando:
# sysctl –w fs.file-max=300000
El anterior comando solo mantiene los cambios hasta el próximo reinicio, para evitar esto tendríamos que modificar el fichero /etc/sysctl.conf
Si queremos establecer los límites por usuario y que permanezcan después de un reinicio habrá que modificar el fichero /etc/security/limits.conf. En el siguiente ejemplo se muestra la configuración de los límites duros y blandos de archivos abiertos para el usuario “bob”
Para consultar los límites blandos del usuario, desde su sesión, ejecutaremos el siguiente comando:
# ulimit -Sa
Para consultar los límites duros del usuario:
# ulimit -Ha
Ahora si desde el usuario si quisiéramos modificar el límite blando, por ejemplo de los archivos abiertos ejecutaríamos:
# ulimit -n 4500
Siempre teniendo en cuenta que el usuario no podrá sobrepasar el límite duro establecido por el administrador del sistema.