«ulimit» es un interesante comando del shell de Linux que puede establecer o informar del límite de recursos del usuario actual.
Por supuesto, debido a su naturaleza, trabajar con «ulimit» requiere acceso de administrador (cuando se cambia el valor). Además, sólo funcionará en sistemas que permitan el control a través del shell. Sin más preámbulos, ¡empecemos con «ulimit»!
Encienda la terminal y ejecute el siguiente comando.
Esto muestra un error, ¿verdad? ¿Por qué? Es porque «ulimit» no es un binario separado. Está incrustado en el propio shell.
Uso básico
Sólo tienes que ejecutar el comando por sí mismo.
Como sugiere la salida, el usuario actual tiene una cantidad «ilimitada» de recursos a los que acceder. Esencialmente, esto significa que el usuario actual puede consumir todos los recursos que el sistema actual soporta.
Para obtener el informe en detalle, añada la bandera «-a» al final. Esto imprimirá todos los límites de recursos para el usuario actual.
Nota: Hay 2 tipos de limitación de recursos: «dura» y «blanda». El límite de recursos «hard» define el límite físico que puede alcanzar el usuario. El límite de recursos «blando» es manejable por el usuario. Su valor puede llegar hasta el límite «duro».
Los recursos del sistema se definen en un archivo de configuración ubicado en «/etc/security/limits.conf». «ulimit», al ser llamado, informará de estos valores.
Comprobar los diferentes límites de un usuario
¿Qué tal si se muestran los parámetros individuales? Entonces llame a «ulimit» con los parámetros respectivos.
Nota: No todos estos comandos funcionarán ya que no todos los sistemas incorporan las características.
Para comprobar el valor del «tamaño de archivo del núcleo» máximo, utilice la bandera «-c». El resultado se mostrará en bloques.
Para el «tamaño máximo de los segmentos de datos» (en kilobytes), utilice la bandera «-d».
En la programación, la prioridad importa. Compruebe la prioridad máxima de programación del usuario actual con la ayuda de la bandera «-e».
Para comprobar el tamaño máximo de la pila del usuario actual, utilice la bandera «-s».
Para el número máximo de procesos de usuario, utilice la bandera «-u».
Para el número máximo de hilos, utilice la bandera «-T».
Para obtener el tamaño de la memoria virtual, utilice la siguiente.
¡Veamos el tamaño del buffer del socket!
Este es interesante. El siguiente comando informará del tiempo de ejecución de cada proceso.
Los descriptores de archivo son otra parte interesante del ecosistema Linux. Para comprobar cuántos descriptores de archivo puede tener un proceso, ejecuta el siguiente.
Para la lista completa de banderas de «ulimit», consulta la página de ayuda de «ulimit».
Estableciendo valores
Hasta ahora, hemos visto cómo comprobar los valores de los límites de recursos del sistema actual. Ahora, es el momento de ver cómo modificar manualmente estos valores.
Nota: Para cambiar el límite «duro», requerirá acceso de administrador, es decir, permiso de «root». Asegúrese de no estropear las cosas.
Hemos mencionado el archivo «limits.conf», ¿verdad? Es el núcleo que DEFINE todos los límites que serán aplicables a los usuarios.
Como se muestra en el archivo, cada entrada tiene que seguir la siguiente estructura.
La parte «dominio» puede ser cualquiera de estos valores.
- Un usuario específico
- Un grupo
- Caracteres salvajes (* y %)
La parte «tipo» permite los siguientes valores.
- «soft» (para implementar límites suaves)
- «hard» (para implementar límites duros)
A continuación, la parte «item». ¡La lista de opciones disponibles es bastante larga! Aquí están algunos de los interesantes.
- core: Tamaño del archivo del núcleo (en KB).
- datos: Tamaño máximo de los datos (en KB)
- fsize: Tamaño máximo del archivo (en KB).
- memlock: Espacio máximo de direcciones bloqueadas en memoria (en KB).
- nofile: Número máximo de descriptores de archivo
- pila: Tamaño máximo de la pila (en KB).
- cpu: Tiempo máximo de CPU (en MIN).
- maxlogins: Número máximo de inicios de sesión para el usuario/grupo actual
- prioridad: Establece la prioridad de los procesos del usuario
- rtprio: Máxima prioridad en tiempo real.
En el campo «valor», ponga un valor entero. Tenga en cuenta que la unidad de cada campo se asocia con el valor de la parte «elemento».
Los cambios tendrán efecto después de salir y volver a iniciar sesión en la cuenta de usuario asociada.
Para obtener información detallada sobre el archivo de configuración «limits.conf», consulte su página man.