Introducción
En este laboratorio, aprenderás cómo verificar si las configuraciones de ulimit se aplican correctamente en Linux. Explorarás diferentes métodos para comprobar los límites de recursos, comenzando por mostrar los límites de la shell actual utilizando ulimit -a.
A continuación, examinarás el archivo de configuración de todo el sistema /etc/security/limits.conf para entender cómo se establecen los límites para usuarios y grupos. Finalmente, aprenderás cómo verificar los límites reales aplicados a un proceso en ejecución inspeccionando su entrada en /proc. Este enfoque práctico proporcionará una comprensión integral de cómo funcionan los límites de recursos y cómo solucionar problemas relacionados en un entorno Linux.
Mostrar límites con ulimit -a
En este paso, aprenderás sobre los límites de recursos en Linux utilizando el comando ulimit. Los límites de recursos controlan la cantidad máxima de recursos del sistema que un proceso puede utilizar. Esto es importante para la estabilidad del sistema y para evitar que un solo proceso consuma todos los recursos disponibles.
El comando ulimit te permite ver y establecer estos límites para la sesión de shell actual y cualquier proceso iniciado a partir de ella.
Para mostrar todos los límites de recursos actuales, abre tu terminal y escribe el siguiente comando:
ulimit -a
Presiona Enter.
Verás una salida similar a esta:
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) <placeholder>
max locked memory (kbytes, -l) <placeholder>
max memory size (kbytes, -m) unlimited
open files (-n) <placeholder>
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) <placeholder>
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) <placeholder>
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
La salida muestra varios límites de recursos, como el número máximo de archivos abiertos (-n), el número máximo de procesos de usuario (-u) y el tamaño máximo de la pila (-s). El valor unlimited significa que no hay un límite impuesto para ese recurso.
Comprender estos límites es crucial para diagnosticar problemas de rendimiento o comportamiento inesperado de los programas. Por ejemplo, si un programa falla porque no puede abrir suficientes archivos, comprobar el límite de open files con ulimit -a sería un buen primer paso.
También puedes ver límites individuales especificando la opción. Por ejemplo, para ver el límite en el número de archivos abiertos:
ulimit -n
Esto mostrará un solo número que representa el límite actual para archivos abiertos.
Experimenta con el comando ulimit -a en tu terminal. Familiarízate con los diferentes tipos de límites mostrados.
Haz clic en Continuar para pasar al siguiente paso.
Comprobar la configuración de límites con cat /etc/security/limits.conf
En el paso anterior, utilizaste ulimit -a para ver los límites de recursos actuales de tu sesión de shell. Estos límites a menudo se configuran a nivel de sistema en un archivo llamado /etc/security/limits.conf.
Este archivo es parte del marco de Módulos de Autenticación Intercambiables (Pluggable Authentication Modules, PAM) y permite a los administradores establecer límites de recursos para usuarios y grupos al iniciar sesión.
Veamos el contenido de este archivo de configuración utilizando el comando cat. cat es un comando simple que se utiliza para mostrar el contenido de archivos.
Abre tu terminal y escribe el siguiente comando:
cat /etc/security/limits.conf
Presiona Enter.
Verás el contenido del archivo limits.conf. La salida se verá algo así (los comentarios y las entradas específicas pueden variar):
## /etc/security/limits.conf
#
#This file sets the limits for the resources available to the login session of
#users and groups. It is used together with the pam_limits module.
#
## (it is recommended to use #include files from /etc/security/limits.d/)
#
#* soft core 0
#root hard core unlimited
#* hard rss 10000
#@student hard nproc 20
#@faculty soft nproc unlimited
#@faculty hard nproc 50
#ftp hard nproc 0
#@student - maxlogins 4
Este archivo utiliza un formato simple:
<domain> <type> <item> <value>
<domain>: Especifica el usuario o grupo al que se aplica el límite. Puede ser un nombre de usuario, un nombre de grupo (precedido por@) o*para todos los usuarios.<type>: Puede sersoftohard.- Los límites
softson los límites actuales que el usuario puede aumentar (hasta el límitehard). - Los límites
hardson los límites máximos que un usuario que no es root no puede exceder.
- Los límites
<item>: El elemento de recurso que se está limitando (por ejemplo,nprocpara el número de procesos,nofilepara el número de archivos abiertos).<value>: El valor del límite.
Las líneas que comienzan con # son comentarios y se ignoran.
Observa la línea ## (it is recommended to use #include files from /etc/security/limits.d/). Esto indica que los límites específicos del sistema o de la aplicación a menudo se colocan en archivos separados dentro del directorio /etc/security/limits.d/. Esto ayuda a mantener el archivo principal limits.conf limpio y organizado.
Si bien no modificarás este archivo en este laboratorio, entender su estructura y propósito es importante para la administración del sistema. Los límites que viste con ulimit -a a menudo se derivan de la configuración en este archivo y en los archivos de limits.d.
Haz clic en Continuar para pasar al siguiente paso.
Verificar los límites de proceso con cat /proc/self/limits
En los pasos anteriores, aprendiste sobre ulimit para ver los límites de la sesión actual y /etc/security/limits.conf para la configuración a nivel de sistema. Ahora, veamos cómo un proceso en ejecución informa sobre sus propios límites.
Linux proporciona un sistema de archivos virtual llamado /proc que contiene información sobre los procesos en ejecución y el núcleo del sistema. Cada proceso en ejecución tiene un directorio bajo /proc nombrado según su Identificador de Proceso (Process ID, PID).
El directorio especial /proc/self es un enlace simbólico que apunta al directorio /proc del proceso que lo accede. Entonces, cuando estás en tu terminal y accedes a /proc/self, estás viendo la información del proceso de tu shell actual.
Dentro del directorio /proc/self, hay un archivo llamado limits que contiene los límites de recursos para ese proceso específico.
Veamos los límites de tu proceso de shell actual utilizando cat:
cat /proc/self/limits
Presiona Enter.
Verás una salida similar a esta:
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes unlimited unlimited processes
Max open files 1048576 1048576 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals <placeholder> <placeholder> signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
Esta salida muestra el Soft Limit (límite flexible) y el Hard Limit (límite estricto) para cada recurso, similar a lo que viste con ulimit -a. Los valores aquí reflejan los límites reales aplicados al proceso que ejecutó el comando cat (tu shell).
Compara la salida de cat /proc/self/limits con la salida de ulimit -a del primer paso. Deberías ver que los valores son consistentes, ya que ulimit -a informa sobre los límites del proceso de shell actual.
El sistema de archivos /proc es una herramienta poderosa para inspeccionar el estado de tu sistema Linux y sus procesos. El archivo limits dentro del directorio de cada proceso proporciona una forma directa de verificar los límites de recursos que están en efecto para ese proceso específico.
Ahora has aprendido tres formas diferentes de interactuar con los límites de recursos en Linux: ver los límites de la sesión actual con ulimit -a, examinar la configuración a nivel de sistema en /etc/security/limits.conf y comprobar los límites de un proceso específico a través de /proc/<PID>/limits (o /proc/self/limits).
Haz clic en Continuar para completar este laboratorio.
Resumen
En este laboratorio, aprendiste cómo verificar si se aplican las configuraciones de ulimit en Linux. Comenzaste utilizando el comando ulimit -a para mostrar los límites de recursos actuales de la sesión de shell, y comprendiste los diversos límites como archivos abiertos, procesos de usuario y tamaño de pila. Este comando proporciona una visión general rápida de los límites heredados por los procesos lanzados desde el shell actual.
A continuación, exploraste el archivo de configuración a nivel de sistema /etc/security/limits.conf utilizando cat. Este archivo define los límites de recursos predeterminados para usuarios y grupos, que se aplican al iniciar sesión. Finalmente, verificaste los límites de recursos reales de un proceso en ejecución examinando /proc/self/limits, que muestra los límites efectivos para el proceso actual, lo que demuestra cómo verificar los límites aplicados a una instancia de proceso específica.



