Maison  >  Article  >  Tutoriel système  >  Surveillance de la mémoire Linux : comprendre l'état de fonctionnement du système en temps réel

Surveillance de la mémoire Linux : comprendre l'état de fonctionnement du système en temps réel

王林
王林avant
2024-02-09 20:33:20457parcourir

À l'ère actuelle de développement rapide de l'information, la stabilité des systèmes de serveurs attire de plus en plus l'attention. En tant qu'élément clé du serveur, la mémoire devient souvent un goulot d'étranglement en cas de problèmes de performances du système. Dans ce cas, la surveillance en temps réel de l’utilisation de la mémoire joue un rôle essentiel pour garantir la stabilité et les performances du système. Cet article expliquera comment surveiller l'utilisation de la mémoire dans les systèmes Linux et utiliser quelques commandes pratiques pour comprendre l'état de fonctionnement du système en temps réel.

Je ferai une démonstration sur une plateforme serveur Ubuntu 18.04[1], mais vous devriez trouver toutes les commandes disponibles dans la distribution de votre choix. Mieux encore, vous n’avez rien besoin d’installer (car la plupart de ces outils sont inclus avec les systèmes Linux).

Cela étant dit, mettons-nous au travail.

haut

Je veux commencer par les outils les plus couramment utilisés. La commande top fournit une vue dynamique en temps réel du système en cours d'exécution, elle vérifie l'utilisation de la mémoire de chaque processus. Ceci est important car vous pouvez facilement voir plusieurs exemples de la même commande consommant différentes quantités de mémoire. Bien que vous ne puissiez pas voir cela sur un serveur sans moniteur, vous avez remarqué que l'ouverture de Chrome ralentit votre système. Exécutez la commande top pour voir que Chrome a plusieurs processus en cours d'exécution (un pour chaque onglet – Figure 1).

Linux 内存监控:实时掌握系统运行状态

Figure 1 : Plusieurs processus Chrome apparaissent dans la commande supérieure.

Chrome n'est pas la seule application affichant plusieurs processus. Voyez-vous Firefox dans la figure 1 ? C'est le processus principal de Firefox, et le processus de contenu Web correspond à ses onglets ouverts. En haut de la sortie, vous verrez les statistiques du système. Sur ma machine (System76 Leopard Extreme[2]), je dispose d'un total de 16 Go de RAM disponible, dont un peu plus de 10 Go sont utilisés. Vous pouvez ensuite trier la liste pour voir quel pourcentage de mémoire chaque processus utilise.

L'une des meilleures choses à propos de top est de découvrir le numéro d'identification de processus (PID) d'un service qui est peut-être devenu incontrôlable. Avec ces PID, vous pouvez dépanner (ou supprimer) les tâches problématiques.

Si vous souhaitez que top affiche des informations de mémoire plus conviviales, utilisez la commande top -o %MEM, qui amènera top à trier tous les processus en fonction de la mémoire utilisée par le processus (Figure 2).

Linux 内存监控:实时掌握系统运行状态

Figure 2 : Tri des processus par utilisation de la mémoire dans la commande supérieure

La commande

top vous donne également des mises à jour en temps réel sur la quantité d'espace de swap utilisée.

gratuit

Cependant, parfois, la commande supérieure peut ne pas répondre à vos besoins. Vous souhaiterez peut-être simplement examiner la mémoire libre et utilisée de votre système. Pour cela, Linux dispose également de la commande free. La commande libre affiche :

  • Quantité totale de mémoire physique disponible et utilisée
  • Quantité totale de mémoire d'échange dans le système
  • Tampons et caches utilisés par le noyau

Dans la fenêtre du terminal, entrez la commande gratuite. Sa sortie n'est pas en temps réel, mais vous obtenez un instantané instantané de la mémoire actuellement libre et utilisée (Figure 3).

Linux 内存监控:实时掌握系统运行状态

Figure 3 : Le résultat de la commande gratuite est simple et clair.

Bien sûr, vous pouvez rendre free plus convivial en ajoutant l'option -m, comme ceci : free -m. Cela affichera l'utilisation de la mémoire en Mo (Figure 4).

Linux 内存监控:实时掌握系统运行状态

Figure 4 : Le résultat de la commande gratuite sous une forme plus lisible.

Bien sûr, si votre système est très récent, vous souhaiterez utiliser l'option -g (en Go), comme free -g.

Si vous avez besoin de connaître la mémoire totale, vous pouvez ajouter l'option -t, telle que : free -mt. Cela calculera simplement la quantité totale de mémoire dans chaque colonne (Figure 5).

Linux 内存监控:实时掌握系统运行状态

Figure 5 : Vous fournit des colonnes de mémoire gratuites.

vmstat

Un autre outil très pratique est vmstat. Cette commande particulière est une petite astuce pour rapporter les statistiques de la mémoire virtuelle. La commande vmstat rapportera :

  • Processus
  • Mémoire
  • Pagination
  • Bloquer IO
  • Interruption
  • Disque
  • Processeur

La meilleure façon d'utiliser vmstat est d'utiliser l'option -s, comme vmstat -s. Cela rapportera les statistiques dans une seule colonne (ce qui est plus facile à lire que le rapport par défaut). La commande vmstat fournira plus d'informations que ce dont vous avez besoin (Figure 6), mais plus c'est toujours mieux (dans ce cas).

Linux 内存监控:实时掌握系统运行状态

Figure 6 : Utilisez la commande vmstat pour vérifier l'utilisation de la mémoire.

dmidecode

Et si vous souhaitez trouver des informations détaillées sur la mémoire système installée ? Pour ce faire, vous pouvez utiliser la commande dmidecode. Cet outil particulier est un décodeur de table DMI, qui transfère le contenu des tables DMI de votre système dans un format lisible par l'homme. Si vous n'êtes pas sûr de ce qu'est une table DMI, elle peut être utilisée pour décrire la composition d'un système (et son évolution).

Pour exécuter la commande dmidecode, vous avez besoin des autorisations sudo. Entrez donc la commande sudo dmidecode -t 17. Le résultat de cette commande (Figure 7) peut être assez long car il affiche des informations sur tous les périphériques de type mémoire. Donc, si vous ne pouvez pas faire défiler vers le haut et vers le bas, vous devrez peut-être envoyer le résultat de cette commande dans un fichier, comme : sudo dmidecode -t 17> dmi_infoI, ou le transmettre à une commande less, comme sudo dmidecode less |

Linux 内存监控:实时掌握系统运行状态

Figure 7 : Sortie de la commande dmidecode.

/proc/meminfo

Vous vous demandez peut-être : « D'où ces commandes obtiennent-elles ces informations ? » Dans certains cas, elles les obtiennent du fichier /proc/meminfo. L'avez-vous deviné ? Vous pouvez lire ce fichier directement en utilisant la commande less /proc/meminfo. En utilisant la commande less, vous pouvez faire défiler de haut en bas une longue sortie pour trouver exactement ce dont vous avez besoin (Figure 8).

Linux 内存监控:实时掌握系统运行状态

Figure 8 : Sortie de la commande less /proc/meminfo.

Ce que vous devez savoir sur /proc/meminfo : ce n'est pas un vrai fichier. En revanche, /proc/meminfo est un fichier virtuel qui contient des informations dynamiques en temps réel sur le système. Vous devez notamment vérifier les valeurs suivantes :

  • Toute la mémoire (MemTotal)
  • Mémoire libre (MemFree)
  • Mémoire disponible (MemAvailable)
  • Tampons
  • Cache de fichiers (en cache)
  • SwapCached
  • Toutes les zones d'échange (SwapTotal)
  • Zone d'échange gratuite (SwapFree)

Si vous souhaitez utiliser /proc/meminfo, vous pouvez connecter la commande egrep pour l'utiliser : egrep –color'Mem | Cache | Swap'/proc/meminfo. Cela produira une liste facile à lire dans laquelle les entrées pour des éléments tels que Mem, Cache et Swap seront colorées (Figure 9).

Linux 内存监控:实时掌握系统运行状态

Figure 9 : Rendre /proc/meminfo plus facile à lire.

Qu'il s'agisse d'un ordinateur personnel ou d'un système serveur, l'utilisation de la mémoire est essentielle et nécessite une attention particulière lors de son utilisation. Cet article présente quelques commandes pratiques pour surveiller et gérer la mémoire dans les systèmes Linux, ce qui nous permet de comprendre l'état de fonctionnement du système en temps réel et d'éviter efficacement les temps d'arrêt du système ou d'autres pannes dues à des problèmes de mémoire. Comprenons et maîtrisons en profondeur ces commandes pour garantir la sécurité et les performances de l'appareil.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer