Remarque :

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

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.

Masquer les étapes Masquer les étapes

Regardez la vidéo ci-dessous pour obtenir une présentation sur vmstat.

  1. Exécutez la commande vmstat sans aucune option.

    vmstat
    

    La commande génère un seul rapport. La sortie est divisée en six sections : procs, memory, swap, io, system et cpu.

    • Les deux premières colonnes fournissent des informations sur les processus :

      • r est le nombre de processus en attente. Il s'agit de processus inactifs et en attente d'exécution.

      • b est 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 :

      • swpd est la quantité de mémoire virtuelle utilisée.

      • free est la quantité de mémoire inactive.

      • buff représente la quantité de mémoire utilisée en tant que tampons.

      • cache est la quantité de mémoire utilisée comme cache.

    • Les deux colonnes suivantes fournissent des informations sur le swap :

      • si est la quantité de mémoire permutée à partir du disque (par seconde).

      • so est la quantité de mémoire permutée sur le disque (par seconde).

        Les numéros si et so non 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 :

      • bi est le nombre de blocs reçus par seconde à partir d'un périphérique en mode bloc.

      • bo est 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 :

      • in est le nombre d'interruptions par seconde, y compris l'horloge.

      • cs est le nombre de commutateurs de contexte par seconde.

    • Les cinq dernières colonnes indiquent les pourcentages de temps CPU total :

      • us est le pourcentage de cycles d'UC utilisés sur les processus utilisateur.

      • sy est le pourcentage de cycles CPU utilisés sur les processus système (noyau).

      • id est le pourcentage de cycles d'UC inactifs.

      • wa est le pourcentage de cycles d'UC passés en attente d'E/S.

      • st est le pourcentage de cycles d'UC volés à partir d'une machine virtuelle.

  2. Exécutez la commande vmstat 1 (numérique, et non la lettre minuscule l) pour afficher un rapport continu par seconde.

    vmstat 1
    
    • Pour mettre fin, appuyez sur Ctrl+C.
  3. Exécutez la commande vmstat 7 4 pour exécuter quatre rapports à sept secondes d'intervalle.

    vmstat 7 4
    

    L'option count indique à vmstat le nombre de rapports à exécuter (4) et l'option delay (7) est l'intervalle de temps entre chaque rapport.

  4. Exécutez la commande vmstat -s pour afficher un tableau de différents compteurs d'événements et statistiques de mémoire.

    vmstat -s
    
  5. Exécutez la commande vmstat -a pour afficher la mémoire active et inactive.

    vmstat -a
    

    L'option -a affiche la quantité de mémoire active et inactive (inact) dans la section memory de la sortie.

  6. Exécutez la commande vmstat -f pour afficher le nombre de forks depuis la dernière initialisation.

    vmstat -f
    
  7. Exécutez la commande vmstat -t pour ajouter un horodatage à la sortie.

    vmstat -t
    
  8. Exécutez la commande vmstat -d pour afficher les statistiques d'utilisation du disque sur le système.

    vmstat -d
    
  9. Exécutez la commande vmstat -p sda1 pour créer un rapport sur une partition de disque spécifique.

    vmstat -p sda1
    

    La 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.

  1. Exécutez la commande mpstat sans aucune option.

    mpstat
    

    La 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 :

    • CPU est le processeur désigné par le numéro commençant à 0 ou le mot-clé all indiquant que les statistiques sont calculées comme des moyennes parmi tous les processeurs.

    • %user est le pourcentage d'UC utilisée lors de l'exécution des applications au niveau de l'utilisateur.

    • %nice est le pourcentage d'UC utilisé lors de l'exécution au niveau de l'utilisateur avec une bonne priorité.

    • %sys est le pourcentage de CPU utilisée lors de l'exécution au niveau du système (noyau).

      La commande mpstat n'inclut pas le temps passé à traiter les interruptions matérielles et logicielles.

    • %iowait est 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.

    • %irq est le pourcentage de temps passé par les CPU à traiter les interruptions matérielles.

    • %soft est le pourcentage de temps passé par les CPU à traiter les interruptions logicielles.

    • %steal représente le pourcentage de temps d'attente involontaire des UC virtuelles pendant que l'hyperviseur servait un autre processeur virtuel.

    • %guest est le pourcentage de temps passé par les UC pour exécuter un processeur virtuel.

    • %gnice est le pourcentage de temps passé par les UC pour exécuter un invité sans frais.

    • %idle repré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.

  2. Exécutez la commande mpstat 2 5 pour afficher l'activité de la CPU toutes les deux secondes, pour un total de cinq rapports sur toutes les CPU.

    mpstat 2 5
    

    La sortie imprime une ligne d'informations au total cinq fois, ainsi qu'une moyenne.

  3. Exécutez la commande mpstat -P ALL pour indiquer l'utilisation de l'UC sur chaque CPU.

    mpstat -P ALL
    

    Cette sortie imprime une seule ligne d'activité pour toutes les CPU et pour chaque CPU. Remarque : mpstat imprime également l'utilisation moyenne de l'UC pour la période indiquée.

  4. Exécutez la commande mpstat -P ALL 2 5 pour afficher l'activité de la CPU toutes les deux secondes sur les CPU.

    mpstat -P ALL 2 5
    

    Cette sortie imprime les statistiques d'utilisation de la CPU pour chaque CPU 5 fois à un intervalle de 2 secondes. Remarque : mpstat imprime également l'utilisation moyenne de l'UC pour la période indiquée.

  5. Exécutez la commande mpstat -A pour 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.

  1. Exécutez la commande top sans aucune option pour une vue à un point dans le temps de l'activité de l'UC.

    top
    

    Par 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érique 1) pour activer/désactiver la moyenne de charge et le temps de disponibilité.

      • Entrez m pour désactiver et activer la mémoire et l'utilisation du swap.

      • Entrez t pour 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 :

    • PID est l'ID de processus unique de la tâche.

    • USER est le nom utilisateur effectif du propriétaire de la tâche.

    • PR est la priorité réelle de la tâche.

    • NI est 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.

    • VIRT est 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.

    • RES représente la mémoire physique non permutée ou la taille résidente utilisée par une tâche.

    • SHR repré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.

    • S est le statut de la tâche. Il existe cinq états :

      • D Veille sans interruption

      • R En cours d'exécution

      • S En veille

      • T Tracé ou arrêté

      • Z Zombie

    • %CPU est 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.

    • %MEM est 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.

    • COMMAND est le nom de la ligne de commande ou du programme utilisé pour démarrer une tâche.

  2. Quittez top en 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.

  1. Installez l'outil stress.

    1. Utilisez la commande dnf repolist pour vérifier le statut du référentiel ol8_developer_EPEL.

      dnf repolist ol8_developer_EPEL
      
      • Si le statut est enabled, passez à l'installation des packages d'outils stress ; sinon, continuez à "activer" le référentiel.

      • Activez le référentiel si le statut est disabled à l'aide de la commande dnf conifg-manager.

        dnf config-manager --enable ol8_developer_EPEL
        
  2. Exécutez la commande dnf install pour installer les packages d'outils stress.

    dnf install stress -y
    
  3. Exécutez la commande stress --dry-run pour 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
    
  4. Exécutez les commandes vmstat 4 4 et mpstat 4 4 pour 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éro 0. Notez également la quantité de mémoire libre.

    vmstat 4 4
    mpstat 4 4
    
  5. Exécutez la commande stress --cpu pour é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 -ef pour afficher les processus stress en cours d'exécution. Transmettez la sortie à grep stress.

      ps -ef | grep stress
      
  6. Exécutez la commande vmstat 4 10 et notez les valeurs indiquées dans les colonnes associées à l'utilisation de l'UC.

    vmstat 4 10
    

    Dans quelques instants, les pourcentages sous la colonne us doivent refléter la charge générée par stress.

  7. Exécutez la commande mpstat 4 10 pour évaluer l'utilisation de toutes les CPU.

    mpstat 4 10
    
  8. Exécutez la commande mpstat -P ALL 4 10 pour évaluer l'utilisation de chaque CPU.

    mpstat -P ALL 4 10
    
  9. Exécutez la commande top pour examiner l'utilisation de l'UC par les processus stress.

    top
    

    Au bout de quelques minutes, les processus stress sont exécutés avec la priorité la plus élevée. Quittez top en saisissant Ctrl+C.

  10. Exécutez la commande pkill pour mettre fin aux processus stress.

    pkill stress
    
  11. Réexécutez les commandes vmstat 4 4 et mpstat 4 4 pour afficher une ligne de base de l'activité du système.

  12. Exécutez une nouvelle commande stress et ajoutez les options --vm et --vm-bytes pour générer dynamiquement l'activité de mémoire sur le système.

    stress --cpu 8 --vm 8 --vm-bytes 512M &
    
  13. Exécutez vmstat 4 10, mpstat -P ALL 4 10 et top pour évaluer l'activité de l'UC et de la mémoire.

    vmstat 4 10
    mpstat -P ALL 4 10
    top
    
    • Quittez top en saisissant Crtl+C.
  14. Utilisez la commande pkill pour mettre fin aux processus stress.

    pkill stress 
    
  15. Réexécutez les commandes vmstat 4 4 et mpstat 4 4 pour afficher une ligne de base de l'activité du système.

  16. Exécutez une nouvelle commande stress et ajoutez l'option --io pour générer dynamiquement l'activité d'entrée/sortie sur le système.

    stress --cpu 8 --vm 8 --vm-bytes 512M --io 8 &
    
  17. Exécutez vmstat 4 10, mpstat -P ALL 4 10 et top pour évaluer l'activité de l'UC, de la mémoire, des entrées/sorties.

    vmstat 4 10
    mpstat -P ALL 4 10
    top
    
    • Quittez top en saisissant Crtl+C.

    • Utilisez pkill pour 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.