Maison  >  Article  >  Tutoriel système  >  Comprendre les performances du disque Linux à l'aide de la commande iostat

Comprendre les performances du disque Linux à l'aide de la commande iostat

WBOY
WBOYavant
2023-12-29 09:11:581074parcourir

Présentation

iostat est principalement utilisé pour surveiller la charge d'E/S des périphériques système. Lorsque iostat est exécuté pour la première fois, il affiche diverses informations statistiques depuis le démarrage du système. L'exécution ultérieure d'iostat affichera les informations statistiques depuis la dernière exécution de la commande. Les utilisateurs peuvent obtenir les informations statistiques requises en spécifiant le nombre et l'heure des statistiques.

Grammaire

iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ appareil [...] | ] [ -p [ périphérique [,...] | TOUS ] ] [ intervalle [ nombre ] ]

Démarrage

iostat -d -k 1 10
Device:tpskB_read/skB_wrtn/skB_readkB_wrtn
sda39.2921.14 1.44441339807 29990031
sda10.00 0.00 0.00 1623523
sda21.32 1.43 4.54 29834273 94827104
sda36.30 0.8524.95 17816289520725244
sda50.85 0.46 3.409543503 70970116
sda60.00 0.00 0.00550236
sda70.00 0.00 0.004060
sda80.00 0.00 0.004060
sda90.00 0.00 0.004060
sda1060.6818.3571.43383002263 1490928140
 
Device:tpskB_read/skB_wrtn/skB_readkB_wrtn
sda 327.555159.18 102.04 5056100
sda10.00 0.00 0.0000

Le paramètre -d indique que l'état d'utilisation du périphérique (disque) est affiché ; -k certaines colonnes qui utilisent des blocs comme unités sont forcées d'utiliser des kilo-octets comme unités ; 2 indique que l'affichage des données est actualisé toutes les 2 secondes.

La signification des informations de sortie

tps : indiquez le nombre de transferts par seconde qui ont été émis vers l'appareil. « Un transfert » signifie « une demande d'E/S ». Plusieurs requêtes logiques peuvent être combinées en « une seule requête d'E/S ». La taille de la demande « un transfert » est inconnue.

kB_read/s : La quantité de données lues sur l'appareil (lecteur exprimé) par seconde
; kB_wrtn/s : La quantité de données écrites sur l'appareil (disque exprimé) par seconde
; kB_read : La quantité totale de données lues ;
kB_wrtn : la quantité totale de données écrites ; ces unités sont des kilo-octets.

Dans l'exemple ci-dessus, nous pouvons voir les statistiques du disque sda ​​et de ses différentes partitions. Le TPS total du disque calculé à ce moment-là était de 39,29. (Comme il s'agit d'une valeur instantanée, le TPS total n'est pas strictement égal à la somme des TPS de chaque partition)

Spécifiez le nom du périphérique surveillé comme sda. Le résultat de cette commande est exactement le même que la commande ci-dessus.

iostat -d sda 2

Surveillez tous les périphériques de disque dur par défaut, surveillez désormais uniquement sda.

-x paramètre
iostat a également une option -x plus couramment utilisée, qui sera utilisée pour afficher les données étendues liées à io.

iostat -d -x -k 1 10
Device:rrqm/s wrqm/s r/s w/srsec/swsec/srkB/swkB/s avgrq-sz avgqu-sz awaitsvctm%util
sda1.5628.317.80 31.49 42.512.9221.26 1.46 1.16 0.030.79 2.6210.28
Device:rrqm/s wrqm/s r/s w/srsec/swsec/srkB/swkB/s avgrq-sz avgqu-sz awaitsvctm%util
sda2.0020.00 381.007.00 12320.00216.006160.00 108.0032.31 1.754.50 2.1784.20

La signification des informations de sortie

rrqm/s : combien de requêtes de lecture liées à cet appareil sont fusionnées par seconde (lorsque l'appel système doit lire des données, VFS enverra la requête à chaque FS. Si le FS constate que différentes requêtes de lecture lisent pour les données du même bloc, FS fusionnera les requêtes dans Merge) ; wrqm/s : combien de requêtes d'écriture liées à ce périphérique sont fusionnées par seconde.

rsec/s : Nombre de secteurs lus par seconde ; wsec/ : Nombre de secteurs écrits par seconde.
rKB/s : le nombre de requêtes de lecture émises vers l'appareil par seconde
 ; wKB/s : le nombre de requêtes d'écriture émises vers l'appareil par seconde
; avgrq-sz taille moyenne du secteur demandé
avgqu-sz est la longueur moyenne de la file d'attente des requêtes. Il ne fait aucun doute que plus la file d’attente est courte, mieux c’est.
wait : le temps de traitement moyen de chaque requête d'E/S (l'unité est en microsecondes et millisecondes). Cela peut être compris comme le temps de réponse des E/S. Généralement, le temps de réponse des E/S du système doit être inférieur à 5 ms. S'il est supérieur à 10 ms, il sera plus long.
Ce temps comprend le temps d'attente et le temps de service. C'est-à-dire que dans des circonstances normales, wait est supérieur à svctm. Plus la différence entre eux est petite, plus le temps d'attente est court. Au contraire, plus la différence est grande, plus la file d'attente est longue. temps, indiquant que le système a échoué.
svctm représente le temps de service moyen (en millisecondes) de chaque opération d'E/S de périphérique. Si la valeur de svctm est très proche de wait, cela signifie qu'il n'y a presque pas d'attente d'E/S et les performances du disque sont très bonnes. Si la valeur de wait est bien supérieure à la valeur de svctm, cela signifie que les E/S. L'attente dans la file d'attente est trop longue et les applications exécutées sur le système ralentiront.
%util : tout le temps d'E/S de traitement dans le temps statistique, divisé par le temps statistique total. Par exemple, si l'intervalle des statistiques est de 1 seconde, que l'appareil traite les E/S pendant 0,8 seconde et est inactif pendant 0,2 seconde, alors le %util de l'appareil = 0,8/1 = 80 %, donc ce paramètre implique le degré d'occupation de l'appareil.
. Généralement, si ce paramètre est à 100 %, cela signifie que le périphérique fonctionne presque à pleine capacité (bien sûr, s'il y a plusieurs disques, même si %util est à 100 %, l'utilisation du disque peut ne pas atteindre un goulot d'étranglement en raison de la capacité de concurrence. du disque).

Paramètre-c

iostat peut également être utilisé pour obtenir une partie de la valeur de l'état du CPU :

iostat -c 1 10

avg-cpu : %user %nice %sys %iowait %idle
1,98 0,00 0,35 11,45 86,22
avg-cpu : %user %nice %sys %iowait %idle
1,62 0,00 0,25 34,46 63,67

Utilisation courante

iostat -d -k 1 10 #Afficher les informations sur le TPS et le débit (l'unité de vitesse de lecture et d'écriture du disque est en Ko)

iostat -d -m 2 #Afficher les informations TPS et débit (vitesse de lecture et d'écriture du disque en Mo)
iostat -d -x -k 1 10 #Afficher l'utilisation de l'appareil (%util), le temps de réponse (attendre) iostat -c 1 10 #Afficher l'état du processeur

Analyse de cas

ostat -d -k 1 |grep sda10
Device:tpskB_read/skB_wrtn/skB_readkB_wrtn
sda1060.7218.9571.53395637647 1493241908
sda10 299.024266.67 129.41 4352132
sda10 483.844589.904117.17 4544 4076
sda10 218.003360.00 100.00 3360100
sda10 546.008784.00 124.00 8784124
sda10 827.00 13232.00 136.0013232136

Comme vu ci-dessus, le nombre moyen de transferts de disque par seconde est d'environ 400 ; le disque lit environ 5 Mo par seconde et écrit environ 1 Mo.

iostat -d -x -k 1
Device:rrqm/s wrqm/s r/s w/srsec/swsec/srkB/swkB/s avgrq-sz avgqu-sz awaitsvctm%util
sda1.5628.317.84 31.50 43.653.1621.82 1.58 1.19 0.030.80 2.6110.29
sda1.9824.75 419.806.93 13465.35253.476732.67 126.7332.15 2.004.70 2.0085.25
sda3.0641.84 444.90 54.08 14204.08 2048.987102.041024.4932.57 2.104.21 1.8592.24

Vous pouvez voir que le temps de réponse moyen du disque est 9b667cbe371c8ecc4cfe2d167159944a80. Le disque répond normalement, mais il est déjà très occupé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer