Aperçu

Parfois, nous pourrions avoir besoin de vérifier la taille totale de la mémoire sur un serveur exécutant Linux ou nous pourrions avoir besoin d’utiliser des statistiques de mémoire dans des scripts shell. Heureusement, nous avons accès à de nombreux outils que nous pouvons utiliser pour vérifier la mémoire physique totale. Dans ce tutoriel, nous allons adopter différentes approches pour servir cet objectif en utilisant plusieurs commandes et outils utiles.

2. free Command

free est la plus simple de toutes les commandes que nous verrons. Il est utilisé pour imprimer l’utilisation de la mémoire physique et d’échange — par défaut, il imprime sur la sortie standard. La commande gratuite est l’une des commandes les plus utilisées pour vérifier rapidement les statistiques de la RAM, car elle est disponible sur la plupart des distributions Linux. Nous pouvons simplement taper la commande free sur notre terminal sans aucun indicateur:

$ free
 total used free shared buff/cache availableMem: 8021048 1320432 5689744 335556 1010872 6121932Swap: 0 0 0

Comme nous le pouvons, la taille de la mémoire physique est imprimée en octets. Cependant, nous pouvons facilement imprimer la sortie dans un format lisible par l’homme en utilisant le drapeau -h ou –human:

$ free -h
 total used free shared buff/cache availableMem: 7.6Gi 1.3Gi 5.4Gi 318Mi 985Mi 5.8GiSwap: 0B 0B 0B

Comme on peut le voir dans la sortie ci-dessus, nous avons un total de 7,6 Gio de RAM. De plus, il existe de nombreuses autres options qui peuvent être utilisées pour imprimer la sortie dans le format que nous aimons, telles que –kilo, –mega, –Giga, etc. Une autre option intéressante est l’option -s:

$ free -h -s 5

L’indicateur -s représente les secondes, donc free imprimera l’utilisation de la RAM toutes les 5 secondes dans cet exemple. C’est particulièrement utile si nous voulons surveiller l’utilisation de la RAM à un intervalle spécifié. Nous pouvons facilement terminer le processus avec le raccourci clavier Ctrl + C.

3. Commande vmstat

Comme la commande gratuite, vmstat (statistiques de mémoire virtuelle) est également disponible sur la plupart des distributions Linux. Par défaut, lorsque nous tapons la commande vmstat, elle affichera la mémoire libre, mise en mémoire tampon et mise en cache aux côtés des informations de swap, CPU, IO et système:

$ vmstat -w
--procs-- -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu-------- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 5352900 56816 1053708 0 0 162 73 328 1087 18 4 78 0 0

Le drapeau –w ou -w affiche la sortie dans un format lisible. Puisque nous sommes intéressés par la taille totale de la RAM, nous allons ajouter le drapeau -s ou –stats:

$ vmstat -s
 8021048 K total memory 1564516 K used memory 305336 K active memory 1962636 K inactive memory 5391588 K free memory 58224 K buffer memory 1006720 K swap cache 0 K total swap 0 K used swap 0 K free swap 76393 non-nice user cpu ticks 5 nice user cpu ticks 14122 system cpu ticks 337834 idle cpu ticks 1790 IO-wait cpu ticks 1463 IRQ cpu ticks 614 softirq cpu ticks 0 stolen cpu ticks 617253 pages paged in 310410 pages paged out 0 pages swapped in 0 pages swapped out 1426200 interrupts 4722588 CPU context switches 1625563254 boot time 1949 forks

La première entrée de la sortie est la RAM physique totale. Parfois, nous n’avons pas besoin de toutes les informations, nous pouvons donc utiliser grep pour extraire uniquement l’entrée souhaitée:

$ vmstat -s | grep -i 'total memory' | sed 's/ *//'
8021048 K total memory

4. top Command

top est essentiellement un gestionnaire de tâches en ligne de commande avec une sortie en temps réel. Il est utilisé pour vérifier les processus en cours d’exécution dans une disposition de table propre. Il nous montre également le processeur, la RAM et les informations système en général. Nous pouvons le déclencher en exécutant simplement la commande supérieure:

$ top
top - 15:18:13 up 57 min, 1 user, load average: 3.40, 3.26, 2.04Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombie%Cpu(s): 17.2 us, 3.6 sy, 0.0 ni, 77.5 id, 0.3 wa, 0.9 hi, 0.5 si, 0.0 stMiB Mem : 7833.1 total, 4665.9 free, 1782.3 used, 1384.8 buff/cachetop - 15:18:49 up 57 min, 1 user, load average: 2.61, 3.08, 2.03Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombietop - 15:18:58 up 58 min, 1 user, load average: 2.45, 3.02, 2.02MiB Swap: 0.0 total, 0.0 free, 0.0 used. 5324.5 avail Mem

En haut, nous pouvons voir les informations de mémoire à côté du champ Mem et observer que nous avons un total de 7833 MiB de RAM totale.

5. utilitaire dmidecode

dmidecode est un outil d’aide qui imprime des informations sur les composants matériels – tels que les spécifications matérielles, les numéros de série et les versions du BIOS – dans un format lisible par l’homme. Les informations matérielles sont extraites de la table DMI. Nous pouvons également l’utiliser pour trouver des informations intéressantes sur notre système telles que la mémoire maximale prise en charge.

5.1. Installation de dmidecode

dmidecode n’est pas installé sur certaines distributions Linux par défaut, nous allons donc l’installer en premier. Nous pouvons installer dmidecode directement à partir de notre référentiel de distribution à l’aide d’un gestionnaire de paquets.

Pour les distributions basées sur Ubuntu, nous pouvons installer le paquet via apt:

# apt install dmidecode

Pour RHEL, Fedora et CentOS, nous pouvons utiliser yum:

# yum install dmidecode

Sur les distributions Arch, utilisez simplement pacman:

# pacman -Sy dmidecode

5.2. En utilisant dmidecode

Une fois l’installation terminée, nous pouvons exécuter la commande dmidecode depuis notre terminal:

# dmidecode

Nous devons avoir les privilèges root pour exécuter dmidecode. Une fois que nous aurons exécuté la commande, nous pourrons voir des informations matérielles détaillées. Il contient beaucoup d’informations relatives à nos composants matériels, mais nous ne sommes intéressés que par la taille totale de notre mémoire.

Heureusement, nous pouvons alimenter l’option –type à la commande pour différents composants tels que le BIOS, la mémoire, le processeur, les températures, etc. L’option –type attend un nombre pour les types DMI.

Dans notre cas, nous voulons regarder le type DMI de mémoire, auquel on peut accéder avec les numéros attribués 5, 6, 16, 17, 18, 19, 20, 21, et 22. Cependant, nous sommes intéressés par le numéro 19, qui imprimera les périphériques RAM actuellement connectés aux emplacements de notre carte mère:

# dmidecode --type 19
# dmidecode 3.3Getting SMBIOS data from sysfs.SMBIOS 3.0.0 present.Handle 0x0049, DMI type 19, 31 bytesMemory Array Mapped AddressStarting Address: 0x00000000000Ending Address: 0x001FFFFFFFFRange Size: 8 GBPhysical Array Handle: 0x0044Partition Width: 1

Comme nous pouvons le voir, nous n’avons qu’un seul périphérique RAM avec 8 Go de taille totale installé dans l’un des emplacements de RAM.

6. Fichier virtuel /proc/meminfo

Le répertoire /proc est un type spécial de répertoire qui contient des fichiers virtuels. Ces fichiers virtuels sont un moyen de jeter un coup d’œil au noyau Linux, aux processus et aux configurations. Ces fichiers n’existent pas réellement sur le disque et ne prennent pas d’espace, mais ils sont créés lorsqu’ils sont lus. L’accès à certains fichiers nécessite un accès root.

Il y a un fichier virtuel spécial nommé meminfo, dans le répertoire /proc, qui peut être lu avec des commandes comme cat et less. Le fichier meminfo contient des informations sur la taille de notre mémoire physique, entre autres informations utiles. Lisons le fichier /proc/meminfo en utilisant cat:

$ cat /proc/meminfo

Dans l’exemple ci-dessus, nous avons utilisé la commande cat, qui est un utilitaire utile qui peut lire à partir d’un fichier ou d’une entrée standard. Une fois la commande exécutée, elle lira /proc/meminfo et nous présentera une longue sortie concernant notre mémoire physique. Nous ne sommes intéressés que par la taille totale de la RAM, qui apparaît dans les trois premières lignes de la sortie:

$ cat /proc/meminfo | head -n 3
MemTotal: 8021048 kBMemFree: 4542960 kBMemAvailable: 5155668 kB

Nous avons imprimé uniquement les lignes qui nous intéressent en utilisant la commande head. L’argument -n fourni à la commande head est utilisé pour spécifier le nombre de lignes à lire. Les tailles sont imprimées en kilo-octets et devraient nous donner une idée de notre mémoire physique totale, libre et disponible.

Supposons que nous écrivions un script Bash où nous devons traiter la taille de la RAM physique. Nous pouvons y parvenir en lisant d’abord le fichier /proc/meminfo, puis en grep la taille totale de la mémoire:

#!/bin/bashtotal_ram () { local totalram=$(cat /proc/meminfo | grep -i 'memtotal' | grep -o ']*') echo $totalram}ram_size=$(total_ram)echo "Total RAM: $ram_size kB"

Maintenant, sauvegardons le script et le rendons exécutable:

$ chmod +755 totalram.sh$ ./totalram.shTotal RAM: 8021048 kB

Utilisation des gestionnaires de tâches GUI

Il existe une variété de gestionnaires de tâches GUI que nous pouvons utiliser pour vérifier l’utilisation du processeur, de la RAM et du réseau en plus de la gestion des processus. Jetons un coup d’œil aux plus populaires pour Linux.

7.1. Moniteur système GNOME

Moniteur système GNOME est le gestionnaire de tâches par défaut fourni avec l’environnement de bureau GNOME. Cependant, si nous exécutons un environnement de bureau différent, nous pouvons facilement rechercher le package gnome-system-monitor sur notre référentiel de paquets de distribution. Une fois installé, nous pouvons le lancer depuis la ligne de commande:

$ gnome-system-monitor

En accédant à l’onglet Ressources, nous pouvons voir notre taille totale de mémoire parmi d’autres statistiques.

7.2. KSysGuard

KSysGuard est le gestionnaire de tâches par défaut développé par la communauté KDE et est livré avec KDE par défaut. De même, si nous utilisons un environnement de bureau différent, nous pouvons facilement l’installer sur notre système en recherchant le paquet ksysguard dans le référentiel de paquets. Nous pouvons le lancer avec la commande ksysguard une fois qu’il est installé:

$ ksysguard

Une fois que ksysguard démarre, nous pouvons nous diriger vers l’onglet Chargement du système et voir nos informations de mémoire avec un joli graphique.

Conclusion

Dans cet article, nous avons examiné différentes commandes et outils qui peuvent nous aider à connaître la taille de la mémoire physique de notre système Linux.

Nous avons couvert la commande free minimale et sa commande vmstat alternative. Ensuite, nous avons utilisé la commande supérieure pour trouver diverses informations système. Nous avons également examiné l’utilitaire dmidecode et comment extraire les informations de mémoire physique de la table DMI.

Par la suite, nous avons appris ce qu’est le répertoire /proc et comment lire le fichier /proc/meminfo pour vérifier la taille totale de la RAM et l’utiliser dans un script bash. Enfin, nous avons découvert quelques gestionnaires de tâches graphiques et comment nous pouvons les utiliser pour vérifier l’utilisation de la RAM et les statistiques.

Si vous avez quelques années d’expérience dans l’écosystème Linux et que vous souhaitez partager cette expérience avec la communauté, consultez nos Directives de contribution.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.