Cómo medir el consumo de recursos en Linux y ajustar los límites en los servicios

recursos

Uno de los pasos clave para mantener un sistema Linux estable y eficiente es monitorizar el consumo de recursos y, cuando sea necesario, ajustar los límites de uso en los servicios. Esto es especialmente importante si tienes servidores con múltiples procesos corriendo al mismo tiempo o si administras sistemas con recursos limitados.

Medir el uso de recursos: comandos esenciales

Linux incluye herramientas muy potentes que nos permiten saber qué está pasando en nuestro sistema en tiempo real:

  • top: Muestra los procesos más activos y su uso de CPU y memoria.
  • htop: Una versión mejorada de top, más visual e interactiva (puedes instalarlo con sudo apt install htop o sudo yum install htop).
  • free -h: Muestra el uso de memoria RAM y swap.
  • vmstat: Muestra estadísticas sobre procesos, memoria, swap, disco y CPU.
  • iostat: Útil para ver el uso de disco por parte de los procesos (requiere el paquete sysstat).
  • pidstat: Permite ver el uso de recursos por proceso.

Estas herramientas te dan una visión clara de qué servicios están consumiendo más recursos y si hay cuellos de botella.

Ajustar los límites de recursos en los servicios

Una vez detectado un servicio que consume en exceso, puedes aplicar límites usando diferentes mecanismos:

1. Usar systemd con límites de recursos

Si el servicio está gestionado por systemd (lo más común hoy en día), puedes limitar su uso de CPU y memoria editando su unidad:

sudo systemctl edit nombre-del-servicio

Y añades algo como esto en el fichero de sobreescritura:

[Service] MemoryMax=512M CPUQuota=50% 

Después recarga systemd y reinicia el servicio:

sudo systemctl daemon-reexec sudo systemctl restart nombre-del-servicio

2. Usar ulimit para limitar procesos

Para procesos lanzados por shell, puedes limitar recursos con ulimit. Por ejemplo, para limitar la memoria virtual a 1 GB:

ulimit -v 1048576

Esto se aplica solo al proceso actual y sus hijos. Puedes configurar límites permanentes en /etc/security/limits.conf.

3. Contenedores o cgroups

Para un control más avanzado, puedes usar cgroups directamente o herramientas como Docker o systemd-nspawn, que permiten aislar servicios y asignarles recursos específicos de CPU, RAM o I/O.

  Comandos básicos de Linux para empezar con la terminal

Consejo final

Empieza por medir y entender qué está pasando. A veces el problema no es el consumo alto en sí, sino que un servicio no está bien optimizado o que otro proceso está interfiriendo. No pongas límites a ciegas: analiza, ajusta y monitoriza de nuevo.

¿Ya estás controlando el uso de recursos en tu sistema?

Cuéntanos en los comentarios qué herramientas usas o si has tenido que limitar algún servicio. ¡Compartir experiencias ayuda a toda la comunidad!

5/5 - (1 voto)

Deja una respuesta