Comment surveiller l'utilisation des ressources Lightsail à partir de la ligne de commande ?

Date de la dernière mise à jour : 29/10/2021

Mon site Web ou mon application hébergée dans Amazon Lightsail est en panne ou fonctionne très lentement. Comment surveiller l'utilisation des ressources Lightsail à partir de la ligne de commande afin de pouvoir résoudre ces problèmes ?

Brève description

Plusieurs facteurs, dont l'utilisation élevée des ressources, affectent les services fonctionnant sur les instances Lightsail. À l'aide d'outils courants, vous pouvez surveiller les ressources telles que le CPU, la mémoire, les E/S de disque et l'utilisation du réseau sur les instances Lightsail en temps réel à partir de la ligne de commande.

L'analyse et la surveillance de l'utilisation des ressources des instances Lightsail à partir de la ligne de commande permettent d'avoir une vision du système en temps réel. Cela permet également d'avoir une vue détaillée des processus qui utilisent le plus de CPU, de mémoire, d'E/S de disque ou de réseau.

Voici les ressources que vous pouvez utiliser pour analyser et surveiller les ressources de votre instance Lightsail à partir de la ligne de commande :

  • L'outil Atop
  • L'outil htop
  • Les commandes iostat, vmstat et mpstat

Solution

L'outil Atop

L'outil atop rapporte l'activité de tous les processus, même si ces derniers se sont terminés pendant l'intervalle spécifié. Cet outil journalise en permanence toutes les informations système pertinentes. Grâce à cette journalisation continue, si les problèmes se reproduisent, vous disposez de données historiques à analyser. L'outil atop est inclus dans les référentiels officiels de la plupart des distributions Linux. Installez l'outil atop en exécutant les commandes suivantes :

Systèmes basés sur Red Hat

$ sudo yum install atop

Systèmes basés sur Debian

$ sudo apt install atop

Par défaut, l'outil atop journalise toute l'activité à des intervalles de 600 secondes. Pour modifier la configuration de l'outil atop afin que les activités soient journalisées à des intervalles de 60 secondes, exécutez la commande suivante :

Systèmes basés sur Red Hat

$sudo sed 's/600/60/' /etc/atop/atop.daily -i

Systèmes basés sur Debian

$ sudo sed 's/600/60/' /etc/default/atop -i

Après avoir exécuté la commande précédente, atop journalise toutes les activités à des intervalles de 60 secondes. Les données sont stockées dans des fichiers journaux dans /var/log/atop. Ces fichiers sont nommés dans le format suivant « atop_ccyymmdd ». Par exemple, « atop_20210902 » est l'enregistrement du 2 septembre 2021.

Pour accéder au fichier journal, exécutez la commande atop -r atologfilepath. La commande ainsi que le fichier journal sont présentés dans l'exemple suivant :

atop -r /var/log/atop/atop_20210902 

ATOP - ip-172-20-139-91                2021/09/02  17:03:44                ----------------                 3h33m7s elapsed
PRC |  sys    6.51s  |  user   7.85s  |  #proc    103  |  #tslpi    81 |  #tslpu     0  |  #zombie    0  |  #exit      0  |
CPU |  sys     0%  |  user      3%  |  irq       0%  |  idle    197% |  wait      0%  |  ipc notavail  |  curscal   ?%  |
cpu |  sys     0%  |  user      1%  |  irq       0%  |  idle     98% |  cpu000 w  0%  |  ipc notavail  |  curscal   ?%  |
cpu |  sys     0%  |  user      1%  |  irq       0%  |  idle     98% |  cpu001 w  0%  |  ipc notavail  |  curscal   ?%  |

Dans l'exemple de sortie précédent, le premier instantané enregistré était le 02/09/2021 17:03:44. Pour passer à l'instantané suivant, appuyez sur la touche « t » du clavier. Pour revenir à l'instantané précédent, appuyez sur la touche « T » (« t » majuscule).

Voici les options couramment utilisées avec lesquelles vous pouvez lancer atop :

Trier par mémoire

$ atop -m

Trier par les détails du disque

$ atop -d

Trier par les détails du réseau

$ atop -n

L'outil htop

L'outil htop est une application de surveillance des processus interactive et en temps réel pour Linux qui montre votre utilisation par processeur ou cœur. Cet outil fournit également un graphique textuel significatif de votre utilisation de la mémoire et du swap.

Pour installer htop, exécutez les commandes suivantes :

Systèmes basés sur Red Hat

$ sudo yum install htop

Systèmes basés sur Debian et Ubuntu

$ sudo apt install htop

Utilisez la commande suivante pour exécuter htop sur votre système :

$ htop

L'outil htop répertorie tous les processus en cours d'exécution sur le système et inclut des informations sur la quantité de CPU et de mémoire utilisée par chaque processus. La commande utilisée pour démarrer le processus est également incluse.

Voici les définitions de chaque colonne de la sortie :

  • PID : un numéro d'identification du processus.
  • BUSER : le propriétaire du processus.
  • PR : la priorité du processus. Plus le nombre est bas, plus la priorité est élevée.
  • NI : la valeur nice du processus, qui affecte sa priorité.
  • VIRT : la quantité de mémoire virtuelle utilisée par le processus.
  • RES : la quantité de RAM physique utilisée par le processus, mesurée en kilo-octets.
  • SHR : la quantité de mémoire partagée utilisée par le processus.
  • S : l'état actuel du processus (zombie, en sommeil, en cours d'exécution, en sommeil ininterrompu ou tracé).
  • CPU : le pourcentage du temps processeur utilisé par le processus.
  • MEM : le pourcentage de RAM physique utilisé par le processus.
  • TIME+ : la quantité de temps processeur utilisée par le processus.
  • COMMAND : le nom de la commande qui a démarré le processus.

Les commandes iostat, vmstat et mpstat

Les commandes iostat, vmstat et mpstat font partie de la solution groupée sysstat. Utilisez les commandes suivantes pour installer cet ensemble d'outils dans votre instance Lightsail :

Systèmes basés sur Red Hat, tels que Amazon Linux, CentOS ou RHEL

$ sudo yum install sysstat

Debian et Ubuntu

$ sudo apt-get install sysstat

Utilisez les commandes suivantes pour démarrer et activer sysstat pour la collecte continue de données :

$ sudo systemctl start sysstat
$ sudo systemctl enable sysstat

Commande « iostat »

La commande iostat collecte et affiche les statistiques des périphériques de stockage en entrée et en sortie du système. Cet outil est souvent utilisé pour suivre les problèmes de performance des périphériques de stockage, y compris les périphériques et les disques. Voici les options courantes d'iostat :

  • iostat : Obtenir un rapport et des statistiques.
  • iostat -x : Affiche des informations statistiques plus détaillées.
  • iostat -c : Affiche uniquement la statistique du CPU.
  • iostat -d : Affiche uniquement le rapport sur les périphériques.
  • iostat -xd : Affiche les statistiques d'E/S étendues pour le périphérique uniquement.

Voici un exemple de sortie de la commande iostat :

$ iostat
Linux 4.14.246-187.474.amzn2.x86_64     10/22/2021     _x86_64_    (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.34    0.00    1.36    1.06    1.67   90.58

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
xvda             41.64      1496.90       890.16     502148     298612

Commande « vmstat »

La commande vmstat (virtual memory statistics ou statistiques de mémoire virtuelle) collecte et affiche des informations sur la mémoire système, les processus, les interruptions, la pagination et les E/S en bloc. La commande vmstat vous permet de spécifier un intervalle d'échantillonnage qui permet d'observer l'activité du système en temps quasi réel. Voici un exemple de la commande vmstat et de sa sortie :

$ vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
3 0 0 1409320 2088 485404 0 0 568 724 232 393 4 2 93 1 1
0 0 0 1409332 2088 485404 0 0 0 67 146 261 0 0 100 0 0
0 0 0 1408916 2088 485404 0 0 0 0 157 276 0 0 100 0 0
0 0 0 1408980 2088 485408 0 0 0 0 161 259 0 0 100 0 0
0 0 0 1408984 2088 485408 0 0 0 0 105 190 0 0 100 0 0

Voici les options les plus courantes que vous pouvez utiliser avec la commande vmstat :

L'option -a affiche la mémoire active et inactive du système :

$ vmstat -a
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free inact active si so bi bo in cs us sy id wa st
2 0 0 1402016 311232 218864 0 0 60 77 74 129 0 0 99 0 0

L'option -d affiche des statistiques sur le disque :

$ vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
nvme0n1 7728 25 433681 4544 3133 93 555950 4196 0 1
Commande « mpstat »

La commande mpstat collecte et affiche des statistiques de performance pour tous les processeurs logiques du système. L'exécution de la commande mpstat sans options génère un rapport unique qui contient les statistiques de performance de tous les processeurs logiques depuis le démarrage.

$ mpstat 
Linux 4.18.0-305.el8.x86_64 (ip-xxx-xx-x-xx.ec2.internal)     10/27/2021     _x86_64_    (2 CPU)

04:23:26 PM  CPU    %usr   %nice    %sys  %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
04:23:26 PM  all    8.42    0.13    2.43    1.49     0.18    0.05    0.22    0.00    0.00   87.08

La première ligne de l'exemple précédent est un ensemble d'étiquettes de colonne. La deuxième ligne correspond à la valeur de chaque colonne :

  • %usr : % d'utilisation du CPU au niveau de l'utilisateur.
  • %nice : % d'utilisation du CPU pour les processus utilisateur étiquetés « nice ».
  • %sys : % d'utilisation du CPU au niveau du système (noyau Linux).
  • %iowait : % d'utilisation du CPU lors de l'attente d'une lecture/écriture sur le disque.
  • %irq : % d'utilisation du CPU pour gérer les interruptions matérielles.
  • %soft : % d'utilisation du CPU pour gérer les interruptions logicielles.
  • %steal : % d'utilisation du CPU étant forcé d'attendre qu'un hyperviseur gère d'autres processeurs virtuels.
  • %guest : % d'utilisation du CPU consacré à l'exécution d'un processeur virtuel.
  • idle : % d'utilisation du CPU en période d'inactivité (pas de processus et pas d'attente sur une lecture/écriture de disque).

À l'aide des outils de ligne de commande précédents, vous pouvez identifier les processus qui utilisent beaucoup de ressources. Vous pouvez également utiliser ces informations pour choisir des instances disposant de ressources suffisantes pour votre application.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?