La RAM, pour Random Access Memory, est un composant critique d’un système Linux qui doit être surveillé de près.
Dans certains cas, vous pourriez manquer de mémoire, laissant votre serveur avec des temps de réponse très lents ou ne répondant plus du tout.
En conséquence, savoir comment vérifier votre RAM sur Linux est crucial car vous pourriez être en mesure de prendre des mesures préventives au lieu de mesures correctives.
Vous pourriez également vouloir augmenter votre mémoire swap, également connue sous le nom de mémoire virtuelle, afin d’améliorer les performances de votre serveur.
Dans ce tutoriel, nous allons énumérer toutes les façons de vérifier votre RAM sous Linux.
Table des matières
Vérifier la RAM sous Linux en utilisant free
La commande la plus populaire afin de vérifier votre RAM sous Linux est d’utiliser la commande « free ».
$ free total used free shared buff/cache availableMem: 4039588 3475216 137584 39596 426788 287580Swap: 0 0 0
Comme vous pouvez le voir, la sortie est divisée en deux catégories : la mémoire (la RAM réelle) et le swap (également appelé mémoire virtuelle).
En utilisant free, vous obtenez les informations suivantes :
- total : la quantité totale de mémoire qui est actuellement installée sur votre système en kilooctets;
- utilisé : la quantité de RAM actuellement utilisée sur votre système en kilooctets;
- libre : la quantité de mémoire libre disponible sur votre système en kilooctets;
- partagée : représente la mémoire utilisée par tmpfs qui est un système de fichiers virtuel qui semble être monté mais qui appartient à la mémoire volatile;
- buffers : la mémoire utilisée par les tampons du noyau;
- cache : le nombre de mémoire utilisé par le cache de page où les données pourraient être stockées d’abord avant d’être écrites sur le disque;
- disponible : la mémoire disponible sur le système en kilo-octets
Notez que même si beaucoup de mémoire pourrait être utilisée par le cache ou par les tampons, le noyau peut libérer cet espace si votre système nécessite plus de mémoire pour les processus.
Comme la commande lsblk que nous avons découverte dans nos tutoriels sur les disques, la commande « free « peut être affichée dans un format convivial.
Pour vérifier la RAM actuelle disponible en utilisant un format convivial, utilisez « free » avec l’option « -h ».
total used free shared buff/cache availableMem: 3.9G 3.3G 127M 38M 400M 256MSwap: 0B 0B 0B
Comme vous pouvez le voir, la sortie est plus facile à lire mais elle est arrondie.
De même, avec la commande free, vous êtes en mesure de faire afficher les colonnes totales afin de vérifier la quantité totale de RAM et de swap disponible sur votre système.
Pour afficher les colonnes totales, utilisez « free » avec l’option « -t ».
$ free -t total used free shared buff/cache availableMem: 4039588 3499392 128828 39596 411368 263292Swap: 0 0 0Total: 4039588 3499392 128828
Notez que les commandes peuvent être combinées afin d’avoir une sortie conviviale et d’avoir les colonnes totales affichées.
$ free -th total used free shared buff/cache availableMem: 3.9G 3.3G 125M 38M 402M 257MSwap: 0B 0B 0BTotal: 3.9G 3.3G 125M
Vérifier la RAM à l’aide de vmstat
Une autre excellente façon de vérifier votre utilisation actuelle de la mémoire virtuelle est d’utiliser la commande « vmstat ».
La sortie peut être un peu difficile à lire mais voici le détail des colonnes affichées :
- r : nombre de processus exécutables sur votre système;
- b : nombre de processus en veille ininterrompue;
- swpd : la quantité de RAM actuellement utilisée par votre système;
- libre : la mémoire disponible
- buff, cache : la RAM utilisée par les tampons du noyau et par les caches de pages;
- inactive, active : la quantité de mémoire inactive et active
- si : le swap utilisé depuis le disque
- so : la mémoire swapée vers le disque
Les autres colonnes sont liées aux E/S du disque et à l’utilisation du CPU, ce qui pourrait ne pas être pertinent dans notre cas.
$ vmstat -s 4039588 K total memory 3460532 K used memory 3398428 K active memory 198356 K inactive memory 162648 K free memory 48904 K buffer memory 367504 K swap cache 0 K total swap 0 K used swap 0 K free swap
Comme vous pouvez le voir, vous disposez d’un grand nombre de sorties de lignes, mais seules quelques-unes sont pertinentes pour ce que nous essayons de réaliser.
En haut de la sortie vmstat, vous pouvez voir la mémoire totale, la mémoire utilisée, la mémoire active (qui est équivalente à la mémoire utilisée), la mémoire inactive et la mémoire libre.
Ces colonnes sont très similaires aux colonnes affichées en utilisant la commande free.
On vous fournit également la mémoire tampon, le cache de swap (qui est équivalent au cache de page) ainsi que le swap total s’il y en a un.
Inspecter /proc/meminfo pour vérifier la RAM
Comme vous le savez déjà, c’est le noyau qui virtualise le système de fichiers et fournit des points d’entrée à certains périphériques de votre système.
Par exemple, le répertoire /proc pourrait stocker des références à des processus sur votre système (c’est-à-dire des descripteurs de fichiers) ; de même, le /dev stockera des références à des périphériques virtuels qui, au final, pointent vers des disques réels.
Cependant, un fichier du répertoire /proc pourrait être plus important que les autres lorsqu’il s’agit de vérifier votre RAM : meminfo.
Comme vous pouvez le constater, le noyau vous fournit des statistiques proches de celles affichées par la commande « free » ou « vmstat ».
Ce n’est en fait pas une grande surprise car ces commandes tirent leurs informations du fichier meminfo lui-même.
En utilisant le fichier /proc/meminfo, vous avez accès à la quantité totale de mémoire de votre système, à la mémoire libre disponible, à la mémoire disponible ainsi qu’aux tampons et aux caches de pages éventuellement utilisés.
Enfin, vous avez accès au cache de swap ainsi qu’au swap actif et inactif utilisé.
Lister le matériel de RAM à l’aide de dmidecode
Toutes les commandes utilisées précédemment sont très utiles, mais elles ne peuvent être utilisées que dans le but de vérifier la RAM utilisée à un moment donné.
Dans certains cas, vous pourriez être intéressé à en savoir plus sur votre matériel de RAM.
Pour ce faire, vous devez utiliser la commande dmidecode.
Avertissement : il se peut que vous deviez être sudo afin d’exécuter dmidecode sur votre système.
$ sudo dmidecode# dmidecode 3.1Getting SMBIOS data from sysfs.SMBIOS 2.4 present.13 structures occupying 405 bytes.Table at 0x000F10D0.Handle 0x0000, DMI type 0, 24 bytesBIOS Information Vendor: Private Version: 20171212 Release Date: 12/12/2017 Address: 0xE8000 Runtime Size: 96 kB ROM Size: 64 kB Characteristics: BIOS characteristics not supported Targeted content distribution is supported BIOS Revision: 1.0
Par défaut, le dmidecode est utilisé afin d’effectuer un dump de tout le matériel utilisé sur votre système.
Afin d’obtenir le matériel dédié à votre mémoire, vous devez spécifier le type de matériel utilisé.
$ sudo dmidecode --type memory# dmidecode 3.1 Getting SMBIOS data from sysfs. SMBIOS 2.4 present. Handle 0x1000, DMI type 16, 15 bytes Physical Memory Array Location: Other Use: System Memory Error Correction Type: Multi-bit ECC Maximum Capacity: 4 GB Error Information Handle: Not Provided Number Of Devices: 1 Handle 0x1100, DMI type 17, 21 bytes Memory Device Array Handle: 0x1000 Error Information Handle: 0x0000 Total Width: 64 bits Data Width: 64 bits Size: 4096 MB Form Factor: DIMM Set: None Locator: DIMM 0 Bank Locator: Not Specified Type: RAM Type Detail: None
Comme vous pouvez le voir, la sortie dmidecode est assez utile : avec elle, vous pouvez en savoir plus sur la capacité maximale de votre système et comment elle est distribuée.
Dans cet exemple, mon système est équipé de 4 Go de mémoire totale fournie par une seule RAM située dans l’espace mémoire DIMM 0.
En utilisant l’image fournie ici, la mémoire RAM aurait été introduite dans le premier emplacement disponible (DIMM 0)
Vérifier l’utilisation de la RAM à l’aide de Prometheus
Les méthodes décrites ci-dessus fonctionnent très bien, mais elles sont un peu démodées par rapport aux solutions de surveillance modernes.
Une excellente façon de suivre votre utilisation de la RAM est d’utiliser une pile de surveillance moderne telle que Prometheus & Grafana.
Prometheus expose un Node Exporter qui peut être utilisé afin de recueillir des métriques d’hôte en particulier des métriques de mémoire.
En consultant la page Github de Node Exporter, vous devrez activer le collecteur « meminfo » qui est spécialisé dans la collecte de métriques de mémoire à partir du fichier /proc/meminfo.
À partir de là, vous pouvez facilement importer un tableau de bord existant dans Grafana afin d’avoir des statistiques de mémoire en temps réel sur votre système.
Vérifier le tutoriel Node Exporter que nous avons lié précédemment devrait vous amener au même résultat, vous pouvez choisir le tableau de bord Grafana de votre choix ici.
Suivre l’utilisation de la RAM à l’aide des commandes top/htop
Enfin, vous pourriez trouver utile d’utiliser les commandes interactives top et htop afin de suivre votre utilisation de la mémoire.
Top est installé nativement sur votre système, il suffit d’exécuter « top » afin d’obtenir les statistiques sur votre système.
Comme vous pouvez le voir ici, on vous fournit les statistiques du CPU mais aussi la quantité totale de RAM et de swap utilisée par votre système.
On vous donne également les quantités disponibles ainsi que les caches tampon et de page utilisés.
Les statistiques sont données pour votre système complet mais elles sont également fournies pour chaque processus de votre instance trié de haut en bas.
La commande htop peut également être utilisée efficacement afin de fournir un suivi de la mémoire convivial sur votre serveur.
Le htop peut ne pas être installé nativement sur votre système, vous devrez donc l’installer.
$ sudo apt-get install htop$ sudo yum install htop
Une fois le htop installé, vous pouvez commencer à l’exécuter en exécutant « htop »
Comme vous pouvez le voir, les sorties sont assez similaires : elles sont juste rendues plus faciles à lire.
Conclusion
Dans ce tutoriel, vous avez appris les différentes façons de vérifier votre RAM sous Linux en utilisant soit la ligne de commande, soit des solutions de surveillance modernes telles que Prometheus et Grafana.
Si vous avez besoin d’améliorer la gestion de la mémoire sur votre système, vous devriez certainement consulter les tutoriels liés à swap car ils élaborent davantage sur l’importance de la mémoire virtuelle sur votre système.
Si vous êtes intéressé par l’administration du système Linux, assurez-vous de jeter un coup d’œil aux autres tutoriels que nous avons sur le sujet.
.