GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar el comando ulimit de Linux

Introducción

ulimit es un comando de shell de Linux integrado que permite ver o limitar la cantidad de recursos del sistema que consumen los usuarios individuales. Limitar el uso de recursos es valioso en entornos con múltiples usuarios y problemas de rendimiento del sistema.

En este tutorial, aprenderá a usar el ulimit comando en Linux con ejemplos.

Requisitos previos

  • Un sistema que ejecuta Linux
  • Acceso a una terminal
  • Privilegios de Sudo

¿Qué es limites.conf?

Los limites.conf es un archivo de configuración que define la configuración de asignación de recursos del sistema ulimit usos. La ruta completa al archivo de configuración es /etc/security/limits.conf .

El cambio de los valores en el archivo persiste después de reiniciar el sistema. Se requieren permisos de superusuario para editar limits.conf archivo.

La primera sección de limits.conf el archivo se ve así:

Explicación de ulimit, Soft Limit y Hard Limit en Linux

Las siguientes secciones explican el ulimit sintaxis y la diferencia entre dos tipos de limitación de recursos:un límite suave y límite estricto .

Sintaxis ulimit

El ulimit El comando toma la siguiente sintaxis general:

ulimit [flags][limit]

Por ejemplo, para establecer el tamaño de la memoria física en kilobytes, ingrese:

ulimit -m 15000

Banderas

Usa el ulimit banderas para ver o limitar valores individuales para varios recursos del sistema. Cuando un [limit] se da, es el nuevo valor del recurso especificado.

Las banderas disponibles son:

[limit] Parámetro

Agregar un [limit] pasa el nuevo valor para los recursos especificados. Cuando se omite, el comando imprime el valor límite suave actual para el recurso especificado, a menos que especifique el -H bandera.

El límite se aplica tanto al límite suave como al límite rígido si ni el -H ni -S se especifican banderas.

Valores de salida

El ulimit El comando tiene dos valores de salida:

  • 0 . Marca una finalización exitosa.
  • >0 . Se rechazó una solicitud de un límite superior o se produjo un error.

Límite suave

Los límites flexibles de recursos son valores impuestos por el kernel para el recurso correspondiente. El límite suave es manejable por cualquier usuario, y su valor máximo no puede exceder el límite duro. El límite duro actúa como techo para el límite blando.

Para ver los límites flexibles detallados para el usuario actual, ejecute:

ulimit -Sa

Límite estricto

El límite de recursos duro define el límite de recursos físicos para un usuario. Al mismo tiempo, el límite duro es el valor máximo para el límite suave. Solo los usuarios raíz pueden cambiar el límite estricto .

Para ver los límites estrictos detallados para el usuario actual, ejecute:

ulimit -Ha

Cómo usar ulimit

Ejecute el ulimit comando ingresando el nombre del comando en la terminal:

ulimit

El resultado muestra la cantidad de recursos a los que tiene acceso el usuario actual. En este ejemplo, el usuario tiene recursos ilimitados del sistema. Para ver o establecer límites de recursos individuales, use el ulimit disponible banderas.

Las siguientes secciones enumeran los usos más comunes del ulimit comando.

Informe detallado de límites

Obtenga un informe detallado con todos los límites de recursos para el usuario actual especificando -a bandera:

ulimit -a

El resultado contiene un informe detallado sobre los límites de recursos para el usuario actual.

Número de proceso límite

Limite el número máximo de procesos de un usuario especificando -u bandera y el número de procesos.

Por ejemplo, limitaremos el número de proceso a 10:

ulimit -u 10

Restringir el número máximo de procesos por usuario evita que estos consuman todos los recursos del sistema. Limitar el número de procesos también evita los efectos adversos de posibles ataques, como una bomba de horquilla.

Por ejemplo:

En el ejemplo anterior, primero limitamos el número de proceso a 10 y luego ejecutamos una bomba de bifurcación. De lo contrario, la bomba de horquilla consumiría todos los recursos y haría que el sistema no responda.

Limitar tamaño de archivo

El -f marca establece el tamaño máximo de archivo que un usuario puede hacer. Por ejemplo, el siguiente comando limita el tamaño del archivo a 50 KB:

ulimit -f 50

Pruebe si el límite funciona creando un archivo más grande. Por ejemplo, usamos el comando cat para redirigir el /dev/zero salida a un archivo, que sería mucho más grande que 50 KB:

El resultado indica que se ha excedido el límite de tamaño del archivo. Compruebe el tamaño del archivo ejecutando:

ls -lh file

El resultado del comando ls muestra que el tamaño del archivo es exactamente de 50 KB, que es el límite que hemos establecido previamente.

Limitar la memoria virtual máxima

Usa el -v marca para establecer la cantidad máxima de memoria virtual disponible para un proceso. Limitar la memoria virtual de un proceso evita que use toda la memoria y evita la hiperpaginación.

Por ejemplo, el siguiente comando limita la memoria virtual disponible para un proceso a 1000 KB:

ulimit -v 1000

Limitar el número de archivos abiertos

El -n marca limita el número de archivos abiertos simultáneamente (descriptores de archivo). El siguiente ejemplo establece el número de archivos abiertos en cinco:

ulimit -n 5

Para probar esto, intentaremos abrir varios archivos de texto, lo que da como resultado un error:

Edite el archivo limits.conf para cambiar el límite flexible o estricto

Para cambiar el límite flexible o estricto, edite los valores en limits.conf expediente.

Siga los pasos a continuación:

1. Abra una ventana de terminal y cambie el directorio a /etc/security :

cd /etc/security

2. Abra limits.conf archivo usando un editor de texto, como el editor vim.

vim limits.conf

3. Cambie los valores límite editando las entradas existentes o agregando una nueva. Cada entrada de limitación tiene cuatro partes:

  • <domain> . Define un usuario, un grupo o contiene un comodín (* o % ).
  • <type> . Acepta dos valores:soft o hard .
  • <item> . Acepta cualquiera de los valores enumerados en el archivo de configuración.
  • <value> . Un valor entero expresado en una unidad asociada con <item> .

Por ejemplo:

Asegúrese de descomentar la línea cuando edite el archivo de configuración.


Linux
  1. Cómo usar el comando sed de Linux

  2. Cómo usar el comando grep de Linux

  3. Cómo usar el comando de historial en Linux

  4. Cómo usar el comando id en Linux

  5. Cómo usar el comando "pantalla" en Linux

Cómo usar el comando fd en el sistema Linux

Cómo usar el comando ulimit en Linux

¿Cómo usar el comando wget en Linux?

¿Cómo usar el comando xargs en Linux?

Cómo usar el comando RPM en Linux

Cómo usar el comando which en Linux

    Bandera Descripción
    -H El límite estricto para el recurso dado. Solo los usuarios root pueden aumentar el límite estricto y cualquier proceso puede reducirlo.
    -S El límite suave para el recurso dado. Cualquier proceso puede cambiar el límite flexible.
    -a Enumera todos los límites de recursos actuales.
    -b El tamaño máximo de búfer de socket.
    -c El tamaño del volcado del núcleo, expresado en el número de bloques de 512 bytes.
    -d El tamaño del área de datos, en kilobytes.
    -e La prioridad de programación de procesos más alta (agradable).
    -f El límite de tamaño de archivo en bloques cuando se usa [limit] parámetro. No especificar un [limit] indica al comando que informe el límite de tamaño del archivo.
    -i El límite del número de señales pendientes.
    -k El límite del número de asignación de la cola.
    -l El tamaño máximo permitido para bloquear en memoria.
    -m El tamaño de la memoria física, en kilobytes.
    -n El número máximo de descriptores de archivo que puede tener un proceso.
    -p El tamaño del búfer de tubería.
    -P El número máximo de pseudoterminales.
    -q El número máximo de bytes en las colas de mensajes POSIX.
    -r El número máximo de subprocesos que puede tener un proceso.
    -R El tiempo máximo de ejecución del proceso, expresado en microsegundos.
    -s El tamaño de la pila, en kilobytes.
    -t Especifica el tiempo máximo de ejecución de un proceso, en segundos.
    -T El límite del número de subprocesos.
    -u Especifica cuántos procesos puede crear un usuario.
    -v La memoria virtual máxima disponible para los procesos.
    -x El número máximo de bloqueos de archivos.