Chapitre 2.3 - Gestion Mémoire et Swap
Objectifs d'Apprentissage
À la fin de ce chapitre, vous serez capable de:
- Comprendre comment Linux gère la mémoire
- Expliquer la mémoire virtuelle et la pagination
- Comprendre le swap et son rôle
- Monitorer l'utilisation mémoire
- Optimiser l'utilisation mémoire
Qu'est-ce que la Gestion Mémoire?
Linux utilise un système sophistiqué de gestion mémoire qui combine mémoire physique (RAM) et mémoire virtuelle (swap) pour optimiser les performances et permettre l'exécution de plus de processus que la RAM disponible.
Mémoire Physique vs Mémoire Virtuelle
Mémoire Physique (RAM)
- Rapide: Accès direct par le CPU
- Limitée: Quantité fixe installée
- Volatile: Perdue au redémarrage
- Coûteuse: Plus chère que le stockage disque
Mémoire Virtuelle
- Abstraite: Chaque processus voit un espace mémoire virtuel
- Pagination: Divisée en pages (généralement 4KB)
- Mapping: Pages virtuelles mappées vers RAM ou swap
- Protection: Isolation entre processus
Pagination et MMU
Le MMU (Memory Management Unit) gère la traduction d'adresses:
Swap
Le swap est un espace sur disque utilisé comme extension de la RAM:
Rôles:
- Extension de la mémoire disponible
- Support de plus de processus
- Amélioration de la stabilité
Types:
- Swap partition: Partition dédiée (recommandé)
- Swap file: Fichier swap (plus flexible)
Configuration:
# 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
Monitoring Mémoire
Commandes de Monitoring
# 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
Interprétation
- MemTotal: RAM totale
- MemFree: RAM libre
- MemAvailable: RAM disponible (libre + cache récupérable)
- SwapTotal: Swap total
- SwapFree: Swap libre
Optimisation Mémoire
Bonnes Pratiques
-
Surveiller régulièrement
- Utiliser
free,top,htop - Identifier les processus gourmands
- Utiliser
-
Ajuster le swap
- Taille recommandée: 1-2x la RAM
- Plus si serveur avec beaucoup de RAM
-
Limiter les processus
- Utiliser
ulimitpour limiter la mémoire - Configurer OOM killer
- Utiliser
-
Nettoyer le cache
# Libérer le cache (si nécessaire)
sync
echo 3 | sudo tee /proc/sys/vm/drop_caches
Résumé
Dans ce chapitre, vous avez appris:
Gestion Mémoire: RAM + Swap pour optimiser les performances
Mémoire Virtuelle: Abstraction pour chaque processus
Pagination: Division en pages, gestion par MMU
Swap: Extension de la RAM sur disque
Monitoring: free, top, htop, /proc/meminfo
Optimisation: Surveillance, ajustement swap, limites
Prochaines Étapes
Chapitre 2.4: Système de Fichiers Virtuel (VFS)
Chapitre 2.5: Gestion des Processus
Chapitre créé le: Décembre 2024