From 83d01d0737571e0023925a749acf9ba5477c79ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9drix?= Date: Fri, 15 May 2026 23:41:07 +0200 Subject: [PATCH] =?UTF-8?q?publish:=20Gestion=20m=C3=A9moire=20et=20proces?= =?UTF-8?q?sus=20sous=20Linux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../draft_overlay.json | 15 ----- .../draft_overlay.md | 58 ----------------- da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/index.md | 65 +++++++++++++++---- .../meta.json | 23 +++++-- .../revisions/0001.md | 19 ++++++ 5 files changed, 89 insertions(+), 91 deletions(-) delete mode 100644 da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/draft_overlay.json delete mode 100644 da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/draft_overlay.md create mode 100644 da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/revisions/0001.md diff --git a/da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/draft_overlay.json b/da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/draft_overlay.json deleted file mode 100644 index 5e16ab8..0000000 --- a/da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/draft_overlay.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "title": "Gestion mémoire et processus sous Linux", - "_updated_at": "2026-05-15 21:40:51", - "slug": "vider-le-cache-memoire", - "published": true, - "published_at": "2023-02-28 20:02", - "category": "Informatique", - "tags": { - "tags": [ - "Linux" - ] - }, - "seo_title": "", - "seo_description": "" -} diff --git a/da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/draft_overlay.md b/da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/draft_overlay.md deleted file mode 100644 index 7a1457e..0000000 --- a/da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/draft_overlay.md +++ /dev/null @@ -1,58 +0,0 @@ -# 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. -```` \ No newline at end of file diff --git a/da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/index.md b/da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/index.md index 1661eda..7a1457e 100644 --- a/da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/index.md +++ b/da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/index.md @@ -1,19 +1,58 @@ -# Cache en mémoire : vider +# Gestion mémoire et processus sous Linux -https://unix.stackexchange.com/questions/87908/how-do-you-empty-the-buffers-and-cache-on-a-linux-system +Notes pratiques sur la libération des caches mémoire, la manipulation du swap et l'arrêt de processus par nom. -To free pagecache - sudo sh -c 'echo 1 >/proc/sys/vm/drop_caches' +## Vider les caches mémoire -To free dentries and inodes - sudo sh -c 'echo 2 >/proc/sys/vm/drop_caches' +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. -To free pagecache, dentries and inodes - sudo sh -c 'echo 3 >/proc/sys/vm/drop_caches' +Avant de vider les caches, il est recommandé d'exécuter `sync` pour forcer l'écriture sur disque des données en attente : -## dés / activer le swap - sudo swapoff -a - sudo swapon -a +```bash +# Libérer le pagecache +sudo sh -c 'sync; echo 1 > /proc/sys/vm/drop_caches' -## Tuer tous les process avec un nom - sudo killall teamviewerd \ No newline at end of file +# 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. +```` \ No newline at end of file diff --git a/da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/meta.json b/da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/meta.json index fe4a013..17ed0fe 100644 --- a/da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/meta.json +++ b/da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/meta.json @@ -1,18 +1,31 @@ { "uuid": "da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a", "slug": "vider-le-cache-memoire", - "title": "Cache en mémoire : vider", + "title": "Gestion mémoire et processus sous Linux", "author": "cedric@abonnel.fr", "published": true, - "published_at": "2023-02-28 20:02:46", + "featured": false, + "published_at": "2023-02-28 20:02", "created_at": "2023-02-28 20:02:46", - "updated_at": "2023-02-28 20:02:46", - "revisions": [], + "updated_at": "2026-05-15 21:41:06", + "revisions": [ + { + "n": 1, + "date": "2026-05-15 21:41:06", + "comment": "Titre modifié, tags modifiés, contenu modifié", + "title": "Cache en mémoire : vider" + } + ], "cover": "", "files_meta": [], "external_links": [], "seo_title": "", "seo_description": "", "og_image": "", - "category": "Informatique" + "category": "Informatique", + "tags": { + "tags": [ + "Linux" + ] + } } diff --git a/da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/revisions/0001.md b/da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/revisions/0001.md new file mode 100644 index 0000000..1661eda --- /dev/null +++ b/da4a9b2c-17c5-4dfd-a8dd-6bce63979b4a/revisions/0001.md @@ -0,0 +1,19 @@ +# Cache en mémoire : vider + +https://unix.stackexchange.com/questions/87908/how-do-you-empty-the-buffers-and-cache-on-a-linux-system + +To free pagecache + sudo sh -c 'echo 1 >/proc/sys/vm/drop_caches' + +To free dentries and inodes + sudo sh -c 'echo 2 >/proc/sys/vm/drop_caches' + +To free pagecache, dentries and inodes + sudo sh -c 'echo 3 >/proc/sys/vm/drop_caches' + +## dés / activer le swap + sudo swapoff -a + sudo swapon -a + +## Tuer tous les process avec un nom + sudo killall teamviewerd \ No newline at end of file