La gestion de la mémoire est un aspect crucial de l’administration système sur Linux. Comprendre comment la mémoire est utilisée et diagnostiquer les problèmes de mémoire peut grandement améliorer les performances de votre système. Dans cet article, nous allons explorer les différents types de mémoire sur Linux et comment utiliser des outils comme vmstat, free, et smem pour analyser l’utilisation de la mémoire.
Types de Mémoire sur Linux
Mémoire Vive (RAM)
La mémoire vive, ou RAM, est la mémoire physique utilisée pour stocker les données et les instructions que le CPU peut accéder rapidement. C’est un composant essentiel pour les performances du système.
Mémoire Virtuelle
La mémoire virtuelle est une technique de gestion de la mémoire qui permet à un système d’exploitation d’utiliser le disque dur pour étendre la RAM. Cela permet d’exécuter des applications qui nécessitent plus de mémoire que la RAM physique disponible.
Mémoire Swap
La mémoire swap est une partie du disque dur utilisée comme mémoire virtuelle. Lorsque la RAM est pleine, les pages de mémoire inactives sont déplacées vers le swap pour libérer de la RAM.
Outils de Diagnostic de la Mémoire
Commande free
La commande free affiche la quantité de mémoire physique et de swap utilisée et libre sur le système, ainsi que les buffers et caches utilisés par le noyau. Voici une explication des colonnes de sortie :
- total : La quantité totale de mémoire RAM installée sur le système.
- used : La quantité de mémoire utilisée. Cela inclut la mémoire utilisée par les applications et les caches du noyau.
- free : La quantité de mémoire inutilisée qui n’est pas allouée à des applications ou des caches.
- shared : La mémoire utilisée (généralement) par tmpfs. Il s’agit de la mémoire partagée entre plusieurs processus.
- buff/cache : La quantité de mémoire utilisée par les buffers et les caches du noyau. Les buffers sont utilisés pour les opérations d’entrée/sortie sur les disques, tandis que les caches sont utilisés pour accélérer l’accès aux fichiers.
- available : Une estimation de la quantité de mémoire disponible pour le démarrage de nouvelles applications, sans swap. Cela inclut la mémoire non utilisée et la mémoire de cache qui peut être libérée si nécessaire.
root@www1 ~ $ free -h
total used free shared buff/cache available
Mem: 251G 38G 204G 1.7G 8.3G 213G
Swap: 31G 0B 31G
Commande ps
La commande ps est utilisée pour obtenir des informations sur les processus en cours d’exécution. Voici quelques colonnes pertinentes pour l’analyse de la mémoire :
- PID : L’identifiant du processus.
- USER : Le propriétaire du processus.
- %MEM : Le pourcentage de la mémoire physique utilisée par le processus.
- VSZ : La taille virtuelle du processus en KiB. Cela inclut toute la mémoire virtuelle utilisée par le processus, y compris la mémoire partagée et la mémoire swap.
- RSS : La taille résidente du processus en KiB. Il s’agit de la partie de la mémoire du processus qui est réellement en mémoire physique (RAM).
ps aux --sort=-%mem | head