Comandos de Linux

Cómo establecer el valor ulimit de forma permanente

Cómo establecer el valor ulimit de forma permanente

En Linux, ulimit es una herramienta incorporada para administrar la asignación de recursos a nivel global, de grupo y de usuario. Para un sistema multiusuario como Linux, esta característica es casi primordial para tener. Puede evitar el consumo de recursos del sistema no deseados como RAM y potencia de CPU.

Vea cómo establecer el valor ulimit de forma permanente en Linux.

Valor límite

Ulimit aplica el límite predefinido de cuántos recursos puede usar un usuario. La herramienta utiliza un determinado archivo de configuración como núcleo para asignar los valores ulimit. Para un control más preciso, es mejor editar el archivo.

$ cat / etc / security / limits.conf


Hay dos tipos de límites que se pueden imponer: límites suaves y estrictos. Es mejor explicar estos tipos con un ejemplo sencillo.

Digamos que a un administrador del sistema le gustaría que un determinado usuario rondara un valor determinado. Aquí, el usuario puede exceder el valor si es necesario, pero no restringido por él. En este caso, será un límite suave. Por otro lado, si el administrador quiere imponer estrictamente el límite, será un límite estricto.

Usando ulimit

Ulimit es una herramienta de línea de comandos. Aquí está la estructura básica del comando ulimit.

$ ulimit

Mostrar todos los límites

La bandera "-a" enumerará todas las opciones y configuraciones para un usuario en particular. Si no se define ningún usuario, imprimirá los límites para el usuario actual en su lugar.

$ ulimit -a

$ ulimit -a


Para mostrar los límites suaves de un usuario, use la bandera "-S".

$ ulimit -Sa


Para mostrar los límites estrictos de un usuario, use la marca "-H".

$ ulimit -Ha


Es posible ver los límites de un determinado proceso. Los detalles se encuentran en el siguiente archivo. Tenga en cuenta que es un archivo único para cada uno de los procesos que se están ejecutando actualmente. Intercambie el campo PID con el PID del proceso objetivo.

$ cat / proc // limites

Limitar parámetros

Para cambiar el ulimit, debe declarar qué tipo de límite le gustaría definir. Aquí hay una lista corta con todos los parámetros disponibles que puede cambiar. Casi todos definen el valor máximo de cada uno de los parámetros.

  • b: tamaño del búfer de socket
  • c: tamaño de los archivos centrales creados
  • d: Tamaño del segmento de datos del proceso
  • e: Prioridad de programación (valor "agradable")
  • f: número de archivos creados por el shell
  • i: número de señales pendientes
  • l: tamaño para guardar en la memoria
  • m: tamaño del conjunto de residentes
  • n: número de descriptores de archivos abiertos
  • p: tamaño del búfer de tubería
  • q: Número de bytes en las colas de mensajes POSIX
  • r: prioridad de programación en tiempo real
  • s: tamaño de la pila
  • t: tiempo de CPU (en segundos)
  • T: Número de hilos
  • u: número de procesos disponibles para un usuario
  • v: cantidad de memoria virtual disponible para procesar
  • x: número de bloqueos de archivos

Cambiar el valor de ulimit temporalmente

Es posible cambiar temporalmente el valor de ulimit para un usuario en particular. El cambio seguirá siendo efectivo hasta que el usuario cierre la sesión, la sesión caduque o el sistema se reinicie. Aquí, mostraré un ejemplo de cómo establecer el número máximo de proceso para un usuario.

Para cambiar el número de procesos disponibles a 12345, ejecute el siguiente comando. Impondrá un límite estricto temporal al usuario.

$ ulimit -u

$ ulimit -u 12345


Consulte el límite estricto para verificar.

$ ulimit -Hu

Cambiar el valor de ulimit de forma permanente

Como se mencionó anteriormente, ulimit utiliza un archivo de configuración del sistema que determina el valor ulimit predeterminado. Al realizar cambios en este archivo, puede cambiar permanentemente el valor de ulimit para cualquier usuario.

Abra el archivo en su editor de texto favorito. Tenga en cuenta que el archivo debe abrirse con permiso de root para que se guarden los cambios.

$ sudo vim / etc / security / limits.conf


Aquí, las entradas del archivo siguen la siguiente estructura.

PS

Hagamos un rápido desglose de cada uno de los campos.

  • dominio: nombres de usuario, grupos, rangos GUID, etc.
  • tipo: Tipo de límite (suave / duro)
  • item: el recurso que va a ser limitado, por ejemplo, tamaño del núcleo, nproc, tamaño del archivo, etc.
  • valor: El valor límite

Aquí hay una lista corta de todos los elementos disponibles.

  • core: limita el tamaño del archivo central (en KB)
  • cpu: tiempo de CPU (en min)
  • datos: tamaño de los datos (en KB)
  • fsize: tamaño del archivo (en KB)
  • bloqueos: bloqueos de archivos que el usuario puede mantener
  • memlock: espacio de direcciones bloqueado en memoria (en KB)
  • nproc: número de procesadores
  • rtpio: prioridad en tiempo real
  • sigpending: Número de señales pendientes

Para obtener una lista completa de los elementos disponibles, consulte la página de manual de límites.conf.

límites de $ man.conf


Por ejemplo, la siguiente entrada limitaría la cantidad de núcleos de CPU que el usuario "Viktor" puede usar hasta 2.

$ viktor hard nproc 2

Una vez editado, guarde el archivo. Para que los cambios surtan efecto, los usuarios afectados deben cerrar sesión y volver a iniciar sesión. Dependiendo de cómo se implemente, también puede requerir que el sistema se reinicie.

Pensamientos finales

La herramienta ulimit ofrece una forma poderosa de administrar recursos. Es simple pero poderoso en lo que hace. Hagas lo que hagas, asegúrate de que el límite que estás a punto de implementar esté ingresado correctamente. Si está probando estas cosas por primera vez, intente probarlas primero en una máquina virtual.

Hay más en el comando ulimit de lo que he discutido aquí. Si desea obtener más información, consulte el comando ulimit de Linux.

Computación feliz!

Tutorial de OpenTTD
OpenTTD es uno de los juegos de simulación empresarial más populares que existen. En este juego, necesitas crear un maravilloso negocio de transporte....
SuperTuxKart para Linux
SuperTuxKart es un gran título diseñado para ofrecerte la experiencia Mario Kart de forma gratuita en tu sistema Linux. Es bastante desafiante y diver...
Tutorial de Battle for Wesnoth
The Battle for Wesnoth es uno de los juegos de estrategia de código abierto más populares que puedes jugar en este momento. Este juego no solo ha esta...