Commande Linux vmstat
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
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
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
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
- 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.
- Surveillance à long terme: à combiner avec
nohuprediriger la sortie vers un fichiernohup vmstat 10 360 > vmstat.log &
- Analyse complète: à combiner avec
top、iostatet d'autres outils à utiliser ensemble - 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 processusvmstatFournit 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
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.
Autres extensions
Référence des commandes Linux