Vous avez peut-être remarqué une consommation importante de mémoire sur votre distribution Debian ou Ubuntu et vous aimeriez connaître la quantité disponible. Ou encore mieux comprendre comment celle-ci est gérée. Dans ce tutoriel, je vous explique comment vérifier l’usage de la RAM en ligne de commande sur Linux.
Vérifier la RAM sur Linux avec la commande free
La commande la plus populaire pour vérifier l’usage de la RAM sur Linux est free
. Celle-ci affiche la quantité totale de mémoire utilisée et disponible sur le système.
free
Je vous conseille d’ajouter l’option -h (human readable) pour que les données soient plus facilement interprétables.
free -h
✏️ Note : La commande free se contente de lire le contenu du fichier /proc/meminfo
et de le restituer dans un format plus facilement lisible. Je vous explique dans une autre section comment consulter le contenu de ce fichier.
La commande free retourne deux lignes d’informations :
- Mem : affiche les données relatives à la RAM présente sur le système
- Swap : correspond à la mémoire virtuelle gérée sur le disque dur.
La ligne qui nous intéresse pour vérifier la RAM physique sur Linux est donc la ligne Mem. Vous trouverez ainsi les colonnes suivantes :
- total : quantité de mémoire totale installée sur le système
- used : RAM utilisée et donc non disponible
- free : mémoire libre et non utilisée
- shared : mémoire utilisée la plupart du temps par tmpFS (système de fichiers temporaire)
- buffers : mémoire tampon utilisée par le kernel
- cache : RAM utilisée pour le cache disque (améliorer les performances du système) et récupérable à tout moment pur d’autres applications
- buff/cache : Somme de buffers et cache
- available : quantité de mémoire disponible sur le système
Pour connaître la quantité de mémoire disponible ou libre sur votre système Linux, vous devez donc lire l’information available.
Vous pouvez aussi ajouter l’argument t
pour afficher le total de Mem
+ Swap
.
free -ht
Vérifier l’utilisation de la RAM en live avec top
top
est un programme sur Linux qui affiche en temps réel les processus et les tâches en cours d’exécution. Vous pouvez vous en servir pour monitorer votre système et afficher la quantité de RAM et CPU utilisée par processus.
top
Pour trier les valeurs de la consommation de RAM en pourcentage et par processus, utilisez la commande suivante :
top -o %MEM
Utiliser la commande htop
pour un top
amélioré
Les informations affichées par htop
sont similaires à top
. htop
fournit cependant un affichage plus agréable et des contrôles plus accessibles.
Pour vérifier la RAM utilisée par processus, vous pouvez faire un tri avec la touche F6. Notez que htop
n’est pas installé par défaut. Vous devez faire un apt update
puis un apt install htop
pour le déployer sur votre système.
Visualiser le fichier /proc/meminfo pour consulter la RAM sur Linux
Le fichier /proc/meminfo
, alimenté par le kernel de Linux, contient les informations sur l’utilisation de la RAM sur Linux. La commande free
, entre-autres, analyse ce fichier pour vous restituer les informations sur la mémoire disponible ou utilisée du système. Tapez la commande suivante pour visualiser son contenu :
cat /proc/meminfo
Voici un échantillon de ce qui est restitué :
MemTotal: 4026160 kB
MemFree: 3643328 kB
MemAvailable: 3724092 kB
Buffers: 13544 kB
Cached: 257060 kB
SwapCached: 0 kB
Active: 89148 kB
Inactive: 204852 kB
Active(anon): 304 kB
Inactive(anon): 23604 kB
Active(file): 88844 kB
Inactive(file): 181248 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 998396 kB
SwapFree: 998396 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 23396 kB
Mapped: 26932 kB
Shmem: 512 kB
KReclaimable: 24452 kB
Slab: 41712 kB
SReclaimable: 24452 kB
SUnreclaim: 17260 kB
KernelStack: 1408 kB
PageTables: 1404 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 3011476 kB
Committed_AS: 163052 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 32588 kB
VmallocChunk: 0 kB
Percpu: 480 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
FileHugePages: 0 kB
FilePmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 0 kB
DirectMap4k: 65472 kB
DirectMap2M: 2031616 kB
DirectMap1G: 2097152 kB
L’output est relativement détaillé, mais vous pouvez bien entendu filtrer les informations qui vous intéressent avec grep
:
grep MemTotal /proc/meminfo
Pourquoi Linux consomme-t-il autant de RAM ?
La gestion de la RAM sur Linux est différente de Windows. Avec une commande free
ou top
, vous obtenez une mémoire libre (valeur free) relativement faible. C’est parce que Linux emprunte la mémoire inutilisée pour la mise en cache du disque et améliorer les performances du système.
Vous pourriez donc penser qu’il vous manque de la RAM ? En réalité, il n’en est rien ! En effet, la RAM affectée en cache peut être redistribuée à tout moment pour les applications, lorsque cela est nécessaire. Linux fait juste travailler votre mémoire au maximum afin d’améliorer les performances générales du système.
Décortiquons l’exemple ci-dessus :
- total : 11Gi de RAM installée sur le système
- used : 1.7Gi de RAM est utilisée par des programmes et n’est pas disponible
- free : 933Mi de RAM non utilisée
- shared : 315Mi : utilisée par tmpFS
- buff/cache : 9.0Gi de mémoire utilisée pour le cache disque, mais disponible en cas de besoins
- available : 9.3Gi de mémoire disponible
Donc la colonne available indique que 9.3Gi de mémoire sont disponibles.
Pour vous aider à mieux comprendre, ce tableau résume comment Linux considère la mémoire utilisée et disponible et comment vous pouvez l’interpréter.
Si la mémoire est | Linux considère qu’elle est | Vous considérez qu’elle est |
---|---|---|
utilisée par des applications | utilisée | utilisée |
utilisée par le cache | utilisée, mais disponible | libre |
non utilisée | libre | libre |