Saltar al contenido principal

Capítulo 2.3 - Gestión de Memoria y Swap

Objetivos de Aprendizaje​

Al final de este capítulo, usted será capaz de:

  • Comprender cómo Linux gestiona la memoria
  • Explicar la memoria virtual y la paginación
  • Comprender el swap y su función
  • Monitorizar el uso de memoria
  • Optimizar el uso de memoria

¿Qué es la Gestión de Memoria?​

Linux utiliza un sistema sofisticado de gestión de memoria que combina memoria física (RAM) y memoria virtual (swap) para optimizar el rendimiento y permitir la ejecución de más procesos que la RAM disponible.


Memoria Física vs Memoria Virtual​

Memoria Física (RAM)​

  • Rápida: Acceso directo por la CPU
  • Limitada: Cantidad fija instalada
  • Volátil: Se pierde al reiniciar
  • Costosa: Más cara que el almacenamiento en disco

Memoria Virtual​

  • Abstracta: Cada proceso ve un espacio de memoria virtual
  • Paginación: Dividida en páginas (generalmente 4KB)
  • Mapeo: Páginas virtuales mapeadas a RAM o swap
  • Protección: Aislamiento entre procesos

Paginación y MMU​

La MMU (Memory Management Unit) gestiona la traducción de direcciones:


Swap​

El swap es un espacio en disco utilizado como extensión de la RAM:

Funciones:

  • Extensión de la memoria disponible
  • Soporte para más procesos
  • Mejora de la estabilidad

Tipos:

  • Partición swap: Partición dedicada (recomendado)
  • Archivo swap: Archivo de swap (más flexible)

Configuración:

# Voir le swap
free -h
swapon --show

# Créer un fichier swap
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# Activer au démarrage
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Monitorización de Memoria​

Comandos de Monitorización​

# Vue d'ensemble
free -h

# Détails par processus
top
htop

# Statistiques détaillées
cat /proc/meminfo

# Utilisation par processus
ps aux --sort=-%mem | head

Interpretación​

  • MemTotal: RAM total
  • MemFree: RAM libre
  • MemAvailable: RAM disponible (libre + caché recuperable)
  • SwapTotal: Swap total
  • SwapFree: Swap libre

Optimización de Memoria​

Buenas Prácticas​

  1. Monitorizar regularmente

    • Utilizar free, top, htop
    • Identificar los procesos que consumen más recursos
  2. Ajustar el swap

    • Tamaño recomendado: 1-2x la RAM
    • Más si el servidor tiene mucha RAM
  3. Limitar los procesos

    • Utilizar ulimit para limitar la memoria
    • Configurar OOM killer
  4. Limpiar la caché

    # Liberar la caché (si es necesario)
    sync
    echo 3 | sudo tee /proc/sys/vm/drop_caches

Resumen​

En este capítulo, usted ha aprendido:

Gestión de Memoria: RAM + Swap para optimizar el rendimiento
Memoria Virtual: Abstracción para cada proceso
Paginación: División en páginas, gestión por la MMU
Swap: Extensión de la RAM en disco
Monitorización: free, top, htop, /proc/meminfo
Optimización: Monitorización, ajuste de swap, límites


Próximos Pasos​

Capítulo 2.4: Sistema de Archivos Virtual (VFS)
Capítulo 2.5: Gestión de Procesos


Capítulo creado el: diciembre 2024