Cómo reducir el uso de RAM y CPU en Linux

Linux es un sistema operativo potente y eficiente, pero un alto uso de RAM y CPU puede degradar el rendimiento, ralentizar las aplicaciones e incluso provocar bloqueos del sistema al ejecutar un servidor, estación de trabajo o sistema integrado, por lo que optimizar el uso de recursos es esencial para un funcionamiento fluido.

En esta guía, exploraremos métodos prácticos para reducir el uso de RAM y CPU en Linux. Cubriremos herramientas de monitoreo, gestión de procesos, ajustes de kernel y técnicas de optimización del sistema para mantener su sistema funcionando eficientemente.

1. Identificar Procesos Hambrientos de Recursos

El primer paso para reducir el uso de RAM y CPU es identificar qué procesos están consumiendo la mayoría de los recursos mediante el uso de varias herramientas de línea de comandos:

a. Usando el Comando top

El comando top proporciona una vista en tiempo real de los procesos del sistema, incluido el uso de CPU y memoria.

top
  • Presione P para ordenar los procesos por uso de CPU.
  • Presione M para ordenar los procesos por uso de memoria.
  • Busque procesos que consuman recursos excesivos y tome nota de su ID de Proceso (PID).
Real-Time System Process Monitoring

b. Usando el Comando htop

htop es un visor de procesos interactivo que proporciona una interfaz más amigable que top.

Para instalar htop en Linux, utiliza el siguiente comando apropiado para tu distribución específica de Linux.

sudo apt install htop         [On Debian, Ubuntu and Mint]
sudo dnf install htop         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/htop  [On Gentoo Linux]
sudo apk add htop             [On Alpine Linux]
sudo pacman -S htop           [On Arch Linux]
sudo zypper install htop      [On OpenSUSE]    
sudo pkg install htop         [On FreeBSD]

Ejecuta htop para ver y gestionar procesos fácilmente.

htop
  • Pulsa F6 para ordenar procesos por uso de CPU o memoria.
  • Pulsa F9 para terminar un proceso seleccionado.
htop – Interactive Process Viewer

c. Usando el Comando ps

El comando ps se puede usar para listar procesos y su uso de recursos.

ps aux --sort=-%mem | head  # Top memory-consuming processes
ps aux --sort=-%cpu | head  # Top CPU-consuming processes
Check Memory Consuming Processes

2. Terminar Procesos Innecesarios

Una vez que hayas identificado procesos que consumen muchos recursos, puedes terminarlos para liberar recursos utilizando el comando kill seguido del PID.

kill PID

Si el proceso no se termina, usa la opción -9 para forzar su finalización.

kill -9 PID

Alternativamente, usa el comando pkill para terminar procesos por nombre.

pkill process_name

3. Optimizar Aplicaciones de Inicio

Muchas aplicaciones y servicios se inician automáticamente al arrancar, consumiendo valiosos recursos del sistema.

Para gestionar las aplicaciones de inicio:

a. Usando el comando systemctl

Lista todos los servicios habilitados usando el comando systemctl.

systemctl list-unit-files --type=service | grep enabled

Desactiva los servicios innecesarios.

sudo systemctl disable service_name
List Enabled Services

b. Usando herramientas GUI

Si estás usando un entorno de escritorio como GNOME o KDE, usa el gestor de aplicaciones de inicio incorporado para desactivar programas innecesarios.

4. Reducir Swappiness (Optimizar el uso de Swap)

Swappiness controla con qué frecuencia el sistema utiliza el espacio de swap en lugar de RAM. Un valor alto de swappiness puede llevar a un intercambio excesivo, ralentizando tu sistema.

Para verificar el valor actual de swappiness:

cat /proc/sys/vm/swappiness

El valor predeterminado suele ser 60, pero para reducir el swappiness necesitas editar el archivo /etc/sysctl.conf.

sudo nano /etc/sysctl.conf

Añade o modifica la siguiente línea.

vm.swappiness=10

Guarda el archivo y aplica los cambios.

sudo sysctl -p

5. Utiliza alternativas de escritorio ligeras

Los entornos de escritorio y aplicaciones pesadas pueden agotar los recursos del sistema, así que considera cambiar a alternativas más ligeras:

a. Entornos de Escritorio

Reemplace GNOME o KDE con opciones más ligeras como XFCE, LXDE, o MATE.

b. Aplicaciones

Utilice aplicaciones livianas como:

  • Editor de texto: Reemplace LibreOffice con AbiWord o Mousepad.
  • Navegador web: Utilice Firefox con menos extensiones o cambie a navegadores livianos como Midori.
  • Gestor de archivos: Reemplace Nautilus con Thunar o PCManFM.

6. Limpiar caché y buffers

Linux utiliza la RAM para almacenar en caché archivos y mejorar el rendimiento. Sin embargo, puede limpiar la caché manualmente si es necesario:

sudo sync; sudo sysctl -w vm.drop_caches=3

Este comando limpia la caché de páginas, dentries e inodos. Úselo con precaución, ya que puede ralentizar temporalmente el acceso a archivos.

7. Optimizar parámetros del kernel

Para ajustar u optimizar los parámetros del kernel, debe editar el archivo /etc/sysctl.conf y agregar lo siguiente o ajustar los parámetros para mejorar el rendimiento del sistema.

vm.dirty_background_ratio=5
vm.dirty_ratio=10
vm.min_free_kbytes=65536
kernel.sched_autogroup_enabled=0

Estas configuraciones controlan con qué frecuencia se escriben los datos sucios en el disco, reduciendo el uso de RAM.

8. Reducir el uso de memoria con ZRAM

Zram y Zswap son tecnologías de memoria comprimida que pueden reducir el uso de RAM.

sudo apt install zram-config 
sudo systemctl start zram-config

Una vez instalado, debe editar el archivo de configuración de GRUB (/etc/default/grub) y agregar:

GRUB_CMDLINE_LINUX_DEFAULT="zswap.enabled=1"

Actualizar GRUB y reiniciar:

sudo update-grub
sudo reboot

9. Limitar el uso de CPU de procesos

Si un proceso está acaparando la CPU, limita su uso utilizando cpulimit.

sudo apt install cpulimit  # Debian/Ubuntu  
sudo yum install cpulimit  # RHEL/CentOS  

Limita un proceso (por ejemplo, firefox) a un 30% de uso de CPU.

sudo cpulimit -e firefox -l 30

Para limitar un proceso de manera permanente, usa systemd.

sudo systemctl set-property <service_name> CPUQuota=30%

10. Actualiza Regularmente Tu Sistema

Mantener tu sistema actualizado asegura que tengas las últimas mejoras de rendimiento y correcciones de errores.

sudo apt update && sudo apt upgrade  # For Debian/Ubuntu
sudo yum update  # For CentOS/RHEL

Consejos para Solucionar Problemas

  • Si un proceso no se termina con kill, usa kill -9 PID para forzar su terminación.
  • Si zram o zswap no funcionan, asegúrate de que tu kernel soporte estas características.
  • Si el rendimiento del sistema no mejora, considera actualizar tu hardware (por ejemplo, agregando más RAM o cambiando a un SSD).
Conclusión

Optimizar el uso de RAM y CPU en Linux es una combinación de monitoreo, ajustes y, ocasionalmente, actualización de hardware. Al identificar procesos que consumen muchos recursos, ajustar configuraciones del sistema y optar por alternativas más livianas, puedes dar nueva vida a tu sistema.

¿Has probado estas técnicas de optimización? Comparte tu experiencia en los comentarios abajo o visita Tecmint.com para más guías y tutoriales de Linux.

Source:
https://www.tecmint.com/reduce-ram-cpu-usage-on-linux/