Commande Linux vmstat

Linux 命令大全Référence des commandes Linux


Qu'est-ce que la commande vmstat

vmstat (Virtual Memory Statistics) est un puissant outil de surveillance des performances sur les systèmes Linux qui peut signaler en temps réel des indicateurs de performance clés, tels que les processus système, la mémoire, les partitions d'échange, les blocs d'E/S et l'activité du processeur.

Fonctionnalités principales

  • Surveillance de la mémoire: Affiche l'utilisation de la mémoire physique et de l'espace d'échange
  • Utilisation du processeur: Affiche la proportion des processus utilisateur, des processus système et du temps d'inactivité
  • État des processus: Indique le nombre de processus en cours d'exécution, en attente et bloqués
  • Statistiques d'E/S: Fournit des informations détaillées sur les opérations de lecture/écriture des périphériques de blocs

Syntaxe de base et paramètres courants

Format de syntaxe de base

vmstat [选项] [时间间隔] [次数]

Description des paramètres courants

Paramètre Description
-a Afficher la mémoire active et inactive
-d Afficher les statistiques de disque
-p Afficher les statistiques d'une partition de disque spécifiée
-s Afficher un résumé des statistiques liées à la mémoire
-m Afficher les informations sur le slab
-t Ajouter un horodatage à la sortie
-S Spécifier l'unité d'affichage (k/K/m/M, représentant respectivement 1000/1024/1000000/1048576)

Détails des champs de sortie

ExecutevmstatAprès la commande, la sortie est généralement divisée en plusieurs parties, à savoir :

1. Informations sur les processus

procs
r: 运行队列中的进程数量
b: 等待 I/O 的进程数量

2. Informations sur la mémoire

memory
swpd: 使用的虚拟内存大小(KB)
free: 空闲的物理内存大小(KB)
buff: 用作缓冲区的内存大小(KB)
cache: 用作缓存的内存大小(KB)

3. Informations sur la partition d'échange

swap
si: 每秒从磁盘读入交换区的内存大小(KB/s)
so: 每秒写入磁盘的交换区内存大小(KB/s)

4. Informations sur les E/S

io
bi: 每秒从块设备接收的块数(blocks/s)
bo: 每秒发送到块设备的块数(blocks/s)

5. Informations système

system
in: 每秒中断数(包括时钟中断)
cs: 每秒上下文切换次数

6. Utilisation du CPU

cpu
us: 用户进程占用 CPU 时间百分比
sy: 系统进程占用 CPU 时间百分比
id: 空闲 CPU 时间百分比
wa: 等待 I/O 的 CPU 时间百分比
st: 被虚拟机偷取的时间百分比

Exemples pratiques expliqués

Exemple 1 : surveillance de base (rafraîchissement toutes les 2 secondes)

Exemple

vmstat 2

Exemple de sortie :

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 123456  78900 456789    0    0     5    12  345 6789 10  5 85  0  0

Exemple 2 : Afficher les statistiques de disque

Exemple

vmstat -d

La sortie affichera les statistiques de lecture/écriture pour chaque disque, y compris le nombre d'opérations de lecture/écriture et de secteurs.

Exemple 3 : surveillance avec horodatages (toutes les 5 secondes, 3 fois au total)

Exemple

vmstat -t 5 3

La sortie ajoute un horodatage avant chaque ligne, ce qui facilite l'enregistrement et l'analyse.


Guide de diagnostic des problèmes de performance

1. Détermination du goulot d'étranglement CPU

  • Valeur us élevée: Les processus utilisateur consomment une grande quantité de CPU ; l'application peut avoir besoin d'être optimisée.
  • Valeur sy élevée: Le noyau système consomme une grande quantité de CPU ; il y a peut-être trop d'appels système.
  • Valeur wa élevée: Temps d'attente E/S long ; possiblement un goulot d'étranglement disque.

2. Diagnostic des problèmes de mémoire

  • si/so continuellement non nuls: Indique que le système utilise la partition swap ; la mémoire physique peut être insuffisante.
  • valeur free en diminution continue: fuite de mémoire possible.

3. Problèmes de blocage de processus

  • Valeur élevée dans la colonne b: indique que plusieurs processus sont en attente d'opérations d'E/S.

Suggestions de bonnes pratiques

  1. Choix de l'intervalle de surveillance: pour les environnements de production, un intervalle de 5-10 secondes est recommandé afin d'éviter d'affecter les performances du système.
  2. Surveillance à long terme: à combiner avecnohuprediriger la sortie vers un fichier
    nohup vmstat 10 360 > vmstat.log &
  3. Analyse complète: à combiner avectop、iostatet d'autres outils à utiliser ensemble
  4. Tests de référence: enregistrez les données de référence lorsque le système est normal pour comparaison lorsqu'une anomalie survient.

FAQ

Q1 : Quelle est la différence entre les commandes vmstat et top ?

  • topFournit des informations détaillées au niveau des processus
  • vmstatFournit une vue d'ensemble de l'utilisation globale des ressources système

Q2 : Que signifient des valeurs si/so très élevées ?

Cela indique que le système utilise fréquemment la partition d'échange, peut-être en raison d'une mémoire physique insuffisante. Il est recommandé d'ajouter de la mémoire ou d'optimiser l'utilisation de la mémoire de l'application.

Q3 : Comment surveiller un disque spécifique ?

Utilisez la-pparamètre pour spécifier la partition de disque :

Exemple

vmstat -p /dev/sda1

En maîtrisant la commande vmstat, vous pourrez diagnostiquer rapidement les goulots d'étranglement de performance dans les systèmes Linux et fournir des données pour l'optimisation du système. Il est recommandé de la combiner avec d'autres outils de surveillance dans le travail réel afin d'obtenir une vue plus complète des performances du système.

Linux 命令大全Référence des commandes Linux

Autres extensions