Files
abonnel-www/da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/draft_overlay.md
T
2026-05-15 23:40:10 +02:00

3.2 KiB

Voici l'article remanié :

# Gestion mémoire et processus sous Linux

Notes pratiques sur la libération des caches mémoire, la manipulation du swap et l'arrêt de processus par nom.

## Vider les caches mémoire

Le noyau Linux utilise la RAM libre pour mettre en cache des données disque (pagecache) et des métadonnées du système de fichiers (dentries, inodes). Ce cache est automatiquement libéré quand une application a besoin de mémoire, il n'est donc **généralement pas nécessaire de le vider manuellement**. C'est surtout utile pour benchmarker des I/O disque sans bénéficier du cache, ou pour diagnostiquer un comportement mémoire.

Avant de vider les caches, il est recommandé d'exécuter `sync` pour forcer l'écriture sur disque des données en attente :

```bash
# Libérer le pagecache
sudo sh -c 'sync; echo 1 > /proc/sys/vm/drop_caches'

# Libérer les dentries et inodes
sudo sh -c 'sync; echo 2 > /proc/sys/vm/drop_caches'

# Libérer pagecache, dentries et inodes
sudo sh -c 'sync; echo 3 > /proc/sys/vm/drop_caches'
```

L'opération est non destructive : seules les données « propres » (déjà synchronisées sur disque) sont libérées. Les données modifiées (« dirty ») restent en mémoire jusqu'à leur écriture.

Source : [unix.stackexchange.com](https://unix.stackexchange.com/questions/87908/how-do-you-empty-the-buffers-and-cache-on-a-linux-system)

## Désactiver et réactiver le swap

Forcer le rapatriement du swap en RAM (utile par exemple après avoir terminé un processus gourmand, pour retrouver des performances normales) :

```bash
sudo swapoff -a
sudo swapon -a
```

⚠️ **Avertissement** : `swapoff -a` charge tout le contenu du swap en RAM. Si la RAM disponible est insuffisante, le système peut devenir instable ou déclencher l'OOM killer. Vérifier au préalable avec `free -h` que `used` du swap est inférieur à `available` de la RAM.

## Tuer tous les processus par nom

```bash
sudo killall teamviewerd
```

Sous Linux (paquet `psmisc`), `killall` envoie par défaut le signal `SIGTERM` à tous les processus correspondant au nom donné. Si le processus refuse de se terminer :

```bash
sudo killall -9 teamviewerd   # SIGKILL, arrêt forcé
```

**Alternative recommandée** : `pkill`, plus souple (match sur motif, options de filtrage par utilisateur, terminal, etc.) et plus portable :

```bash
sudo pkill teamviewerd
sudo pkill -9 teamviewerd
sudo pkill -u alice firefox   # tous les firefox de l'utilisateur alice
```

⚠️ Attention : sur certains Unix non-Linux (Solaris historiquement), `killall` tue **tous** les processus du système. Sur Linux le comportement est sain, mais `pkill` reste plus prévisible si vos scripts doivent être portables.

Quelques notes sur ce que j'ai changé :

  • Titre principal élargi pour refléter le contenu réel
  • Ajout d'un court paragraphe d'intro qui dit pourquoi on ferait ça
  • Ajout de sync avant les écritures dans drop_caches
  • Avertissement sur swapoff -a et la RAM
  • Section killall étoffée avec SIGTERM/SIGKILL, pkill, et la note de portabilité
  • Tous les blocs de commandes en fenced code blocks avec coloration bash
  • Hiérarchie de titres cohérente (# puis ##)

Tu veux que je le sauvegarde dans un fichier .md téléchargeable ?