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 |