Remarque :
- Ce tutoriel est disponible dans un environnement de laboratoire gratuit fourni par Oracle.
- Il utilise des exemples de valeur pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. A la fin de l'exercice, remplacez ces valeurs par celles propres à votre environnement cloud.
Surveiller les ressources système sur Oracle Linux
Introduction
Dans ce tutoriel, vous allez utiliser Oracle Linux vmstat, mpstat et top pour surveiller l'utilisation des ressources système. La surveillance de l'utilisation des ressources système est utile pour détecter les problèmes susceptibles de nuire aux performances du système.
Contexte
Oracle Linux fournit des outils de surveillance et d'analyse de l'utilisation des ressources système, ainsi que des outils de suivi permettant de diagnostiquer les problèmes de performances dans plusieurs processus et threads associés.
Objectifs
- Explorer la commande
vmstat - Explorer la commande
mpstat - Explorer la commande
top - Utilisez
vmstatetmpstat, ettop - Examinez la sortie de la commande
vmstat,mpstatettop
De quoi avez-vous besoin ?
Système client sur lequel Oracle Linux 8 ou version ultérieure est installé.
Remarque : lorsque vous utilisez l'environnement d'exercices gratuits, reportez-vous à Notions de base d'Oracle Linux Lab pour obtenir des instructions de connexion et d'utilisation.
Explorer et utiliser les options de commande vmstat
vmstat indique la quantité de mémoire virtuelle et la quantité de mémoire libre. La commande affiche également l'activité de pagination. Vous pouvez observer les entrées et les sorties de page au fur et à mesure qu'elles se produisent sur le système.
Vous pouvez envisager d'optimiser votre zone d'affichage à l'aide des commandes Masquer les étapes et "Ecran complet" situées dans la barre des tâches, comme illustré dans les images.

Regardez la vidéo ci-dessous pour obtenir une présentation sur vmstat.
-
Exécutez la commande
vmstatsans aucune option.vmstatLa commande génère un seul rapport. La sortie est divisée en six sections :
procs,memory,swap,io,systemetcpu.-
Les deux premières colonnes fournissent des informations sur les processus :
-
rest le nombre de processus en attente. Il s'agit de processus inactifs et en attente d'exécution. -
best le nombre de processus qui étaient en mode veille et qui ont été interrompus depuis la dernière mise à jour.
-
-
Les quatre colonnes suivantes fournissent des informations sur la mémoire :
-
swpdest la quantité de mémoire virtuelle utilisée. -
freeest la quantité de mémoire inactive. -
buffreprésente la quantité de mémoire utilisée en tant que tampons. -
cacheest la quantité de mémoire utilisée comme cache.
-
-
Les deux colonnes suivantes fournissent des informations sur le swap :
-
siest la quantité de mémoire permutée à partir du disque (par seconde). -
soest la quantité de mémoire permutée sur le disque (par seconde).Les numéros
sietsonon nuls indiquent que la mémoire physique est insuffisante, ce qui entraîne le remplacement de la mémoire par le noyau sur le disque.
-
-
Les deux colonnes suivantes indiquent Entrée/Sortie :
-
biest le nombre de blocs reçus par seconde à partir d'un périphérique en mode bloc. -
boest le nombre de blocs envoyés par seconde à un périphérique en mode bloc.
-
-
Les deux colonnes suivantes fournissent les informations système suivantes :
-
inest le nombre d'interruptions par seconde, y compris l'horloge. -
csest le nombre de commutateurs de contexte par seconde.
-
-
Les cinq dernières colonnes indiquent les pourcentages de temps CPU total :
-
usest le pourcentage de cycles d'UC utilisés sur les processus utilisateur. -
syest le pourcentage de cycles CPU utilisés sur les processus système (noyau). -
idest le pourcentage de cycles d'UC inactifs. -
waest le pourcentage de cycles d'UC passés en attente d'E/S. -
stest le pourcentage de cycles d'UC volés à partir d'une machine virtuelle.
-
-
-
Exécutez la commande
vmstat 1(numérique, et non la lettre minusculel) pour afficher un rapport continu par seconde.vmstat 1- Pour mettre fin, appuyez sur Ctrl+C.
-
Exécutez la commande
vmstat 7 4pour exécuter quatre rapports à sept secondes d'intervalle.vmstat 7 4L'option count indique à
vmstatle nombre de rapports à exécuter (4) et l'option delay (7) est l'intervalle de temps entre chaque rapport. -
Exécutez la commande
vmstat -spour afficher un tableau de différents compteurs d'événements et statistiques de mémoire.vmstat -s -
Exécutez la commande
vmstat -apour afficher la mémoire active et inactive.vmstat -aL'option
-aaffiche la quantité de mémoireactiveet inactive (inact) dans la sectionmemoryde la sortie. -
Exécutez la commande
vmstat -fpour afficher le nombre de forks depuis la dernière initialisation.vmstat -f -
Exécutez la commande
vmstat -tpour ajouter un horodatage à la sortie.vmstat -t -
Exécutez la commande
vmstat -dpour afficher les statistiques d'utilisation du disque sur le système.vmstat -d -
Exécutez la commande
vmstat -p sda1pour créer un rapport sur une partition de disque spécifique.vmstat -p sda1La sortie présente un récapitulatif de la partition, y compris le nombre de lectures et d'écritures.
Explorer et utiliser les options de commande mpstat
La commande mpstat permet de collecter et d'afficher les statistiques de performances de toutes les CPU logiques du système. Lorsqu'une CPU est occupée par un processus, elle n'est pas disponible pour le traitement des autres demandes. Ces autres processus doivent attendre que la CPU soit libre.
Regardez la vidéo ci-dessous pour obtenir une présentation sur mpstat.
-
Exécutez la commande
mpstatsans aucune option.mpstatLa première ligne affiche la version du noyau Linux, le nom d'hôte, la date actuelle, l'architecture et le nombre de CPU de votre système.
La première colonne de la ligne suivante fournit un horodatage, les autres colonnes étant définies comme suit :
-
CPUest le processeur désigné par le numéro commençant à0ou le mot-cléallindiquant que les statistiques sont calculées comme des moyennes parmi tous les processeurs. -
%userest le pourcentage d'UC utilisée lors de l'exécution des applications au niveau de l'utilisateur. -
%niceest le pourcentage d'UC utilisé lors de l'exécution au niveau de l'utilisateur avec une bonne priorité. -
%sysest le pourcentage de CPU utilisée lors de l'exécution au niveau du système (noyau).La commande
mpstatn'inclut pas le temps passé à traiter les interruptions matérielles et logicielles. -
%iowaitest le pourcentage de temps pendant lequel les CPU étaient inactives alors que le système disposait d'une demande d'E/S de disque en attente. -
%irqest le pourcentage de temps passé par les CPU à traiter les interruptions matérielles. -
%softest le pourcentage de temps passé par les CPU à traiter les interruptions logicielles. -
%stealreprésente le pourcentage de temps d'attente involontaire des UC virtuelles pendant que l'hyperviseur servait un autre processeur virtuel. -
%guestest le pourcentage de temps passé par les UC pour exécuter un processeur virtuel. -
%gniceest le pourcentage de temps passé par les UC pour exécuter un invité sans frais. -
%idlereprésente le temps d'inactivité (ou les UC) de l'UC et le temps pendant lequel aucune demande d'E/S disque n'était en attente sur le système.
-
-
Exécutez la commande
mpstat 2 5pour afficher l'activité de la CPU toutes les deux secondes, pour un total de cinq rapports sur toutes les CPU.mpstat 2 5La sortie imprime une ligne d'informations au total cinq fois, ainsi qu'une moyenne.
-
Exécutez la commande
mpstat -P ALLpour indiquer l'utilisation de l'UC sur chaque CPU.mpstat -P ALLCette sortie imprime une seule ligne d'activité pour toutes les CPU et pour chaque CPU. Remarque :
mpstatimprime également l'utilisation moyenne de l'UC pour la période indiquée. -
Exécutez la commande
mpstat -P ALL 2 5pour afficher l'activité de la CPU toutes les deux secondes sur les CPU.mpstat -P ALL 2 5Cette sortie imprime les statistiques d'utilisation de la CPU pour chaque CPU 5 fois à un intervalle de 2 secondes. Remarque :
mpstatimprime également l'utilisation moyenne de l'UC pour la période indiquée. -
Exécutez la commande
mpstat -Apour imprimer les statistiques d'utilisation de la CPU et d'interruption ensemble dans la même sortie de commande.mpstat -A
Explorer la commande top
La commande top fournit une vue continue de l'activité du processeur en temps réel. top affiche la liste des processus ou tâches les plus gourmands en CPU sur le système et fournit une interface interactive limitée pour la manipulation des processus.
Regardez la vidéo ci-dessous pour obtenir une présentation sur top.
-
Exécutez la commande
topsans aucune option pour une vue à un point dans le temps de l'activité de l'UC.topPar défaut, la sortie est actualisée toutes les trois secondes et divisée en deux sections principales.
La section supérieure affiche des informations générales telles que les moyennes de charge au cours des 1, 5 et 15 dernières minutes, le nombre de tâches en cours d'exécution et en veille, ainsi que l'utilisation globale de la CPU et de la mémoire.
-
Utilisez la commande suivante pour activer ou désactiver la sortie affichée dans la section supérieure :
-
Entrez la lettre minuscule
l(non numérique1) pour activer/désactiver la moyenne de charge et le temps de disponibilité. -
Entrez
mpour désactiver et activer la mémoire et l'utilisation du swap. -
Entrez
tpour désactiver et activer la mémoire et l'utilisation du swap.
-
La section inférieure affiche une liste triée des processus, généralement par utilisation de l'UC, ainsi que leurs ID de processus (PID) et l'utilisateur propriétaire du processus. En outre, les sorties affichent le temps d'exécution et la mémoire utilisés par les processus.
Les colonnes de la section inférieure sont décrites ci-dessous :
-
PIDest l'ID de processus unique de la tâche. -
USERest le nom utilisateur effectif du propriétaire de la tâche. -
PRest la priorité réelle de la tâche. -
NIest la valeur de la tâche dans l'espace utilisateur.Une valeur négative signifie une priorité plus élevée et une valeur positive signifie une priorité plus faible. La valeur zéro signifie que la priorité d'une tâche n'a pas d'effet lors de son exécution.
-
VIRTest la quantité totale de mémoire virtuelle utilisée par la tâche.Cette valeur inclut l'ensemble du code, des données et des bibliothèques partagées, ainsi que les pages échangées.
-
RESreprésente la mémoire physique non permutée ou la taille résidente utilisée par une tâche. -
SHRreprésente la quantité de mémoire partagée utilisée par la tâche.Cette mémoire peut potentiellement être partagée avec d'autres processus.
-
Sest le statut de la tâche. Il existe cinq états :-
DVeille sans interruption -
REn cours d'exécution -
SEn veille -
TTracé ou arrêté -
ZZombie
-
-
%CPUest la part du temps UC écoulé ou de l'utilisation de l'UC depuis la dernière mise à jour de l'écran, exprimée en pourcentage du temps UC total. -
%MEMest le partage actuellement utilisé de la mémoire physique disponible ou de l'utilisation de la mémoire. -
TIME+est le temps UC total utilisé par la tâche depuis son démarrage. -
COMMANDest le nom de la ligne de commande ou du programme utilisé pour démarrer une tâche.
-
-
Quittez
topen saisissant Crtl+C.
Comparer la sortie de commande à partir de vmstat, mpstat et top
Dans cet exercice, vous allez exécuter différents tests stress pour émuler différentes charges sur votre système d'exercices, puis utiliser les commandes vmstat, mpstat et top pour déterminer ce qu'ils génèrent pour les différents types de charge.
Même si vous exécutez les tests en tant que processus en arrière-plan, envisagez d'ouvrir d'autres fenêtres de terminal pour vos comparaisons.
Chaque fenêtre supplémentaire nécessite la connexion à l'instance d'exercice à l'aide de ssh à oracle@<IP_ADDRESS_OF_COMPUTE_INSTANCE>. Où <IP_ADDRESS_OF_COMPUTE_INSTANCE> est l'adresse IP copiée à partir de la console Oracle Cloud.
- Après vous être connecté, utilisez la commande
sudo -ipour passer à l'utilisateur root.
-
Installez l'outil
stress.-
Utilisez la commande
dnf repolistpour vérifier le statut du référentielol8_developer_EPEL.dnf repolist ol8_developer_EPEL-
Si le statut est
enabled, passez à l'installation des packages d'outilsstress; sinon, continuez à "activer" le référentiel. -
Activez le référentiel si le statut est
disabledà l'aide de la commandednf conifg-manager.dnf config-manager --enable ol8_developer_EPEL
-
-
-
Exécutez la commande
dnf installpour installer les packages d'outilsstress.dnf install stress -y -
Exécutez la commande
stress --dry-runpour afficher un exemple de syntaxe de commande. Prenez un instant et passez en revue les options de l'exemple, ainsi que les autres options de commande répertoriées.stress --dry-run -
Exécutez les commandes
vmstat 4 4etmpstat 4 4pour afficher une ligne de base de l'activité du système. Notez plus précisément les pourcentages de CPU alloués aux processus utilisateur et système (noyau). Ces colonnes doivent être proches de zéro0. Notez également la quantité de mémoire libre.vmstat 4 4 mpstat 4 4 -
Exécutez la commande
stress --cpupour émuler un programme lié au calcul et exécutez la commande en arrière-plan. Cette commande génère dynamiquement huit processus liés au calcul.stress --cpu 8 &-
Appuyez sur return pour revenir à l'invite.
-
Exécutez la commande
ps -efpour afficher les processusstressen cours d'exécution. Transmettez la sortie àgrep stress.ps -ef | grep stress
-
-
Exécutez la commande
vmstat 4 10et notez les valeurs indiquées dans les colonnes associées à l'utilisation de l'UC.vmstat 4 10Dans quelques instants, les pourcentages sous la colonne
usdoivent refléter la charge générée parstress. -
Exécutez la commande
mpstat 4 10pour évaluer l'utilisation de toutes les CPU.mpstat 4 10 -
Exécutez la commande
mpstat -P ALL 4 10pour évaluer l'utilisation de chaque CPU.mpstat -P ALL 4 10 -
Exécutez la commande
toppour examiner l'utilisation de l'UC par les processusstress.topAu bout de quelques minutes, les processus
stresssont exécutés avec la priorité la plus élevée. Quitteztopen saisissant Ctrl+C. -
Exécutez la commande
pkillpour mettre fin aux processusstress.pkill stress -
Réexécutez les commandes
vmstat 4 4etmpstat 4 4pour afficher une ligne de base de l'activité du système. -
Exécutez une nouvelle commande
stresset ajoutez les options--vmet--vm-bytespour générer dynamiquement l'activité de mémoire sur le système.stress --cpu 8 --vm 8 --vm-bytes 512M & -
Exécutez
vmstat 4 10,mpstat -P ALL 4 10ettoppour évaluer l'activité de l'UC et de la mémoire.vmstat 4 10 mpstat -P ALL 4 10 top- Quittez
topen saisissant Crtl+C.
- Quittez
-
Utilisez la commande
pkillpour mettre fin aux processusstress.pkill stress -
Réexécutez les commandes
vmstat 4 4etmpstat 4 4pour afficher une ligne de base de l'activité du système. -
Exécutez une nouvelle commande
stresset ajoutez l'option--iopour générer dynamiquement l'activité d'entrée/sortie sur le système.stress --cpu 8 --vm 8 --vm-bytes 512M --io 8 & -
Exécutez
vmstat 4 10,mpstat -P ALL 4 10ettoppour évaluer l'activité de l'UC, de la mémoire, des entrées/sorties.vmstat 4 10 mpstat -P ALL 4 10 top-
Quittez
topen saisissant Crtl+C. -
Utilisez
pkillpour mettre fin àstress.
-
Ressources de formation supplémentaires
Explorez d'autres exercices sur docs.oracle.com/learn ou accédez à davantage de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir Oracle Learning Explorer.
Pour consulter la documentation du produit, consultez le centre d'aide Oracle.
Monitor system resources on Oracle Linux
F49875-04
May 2022
Copyright © 2021, Oracle and/or its affiliates.