Maison > Article > Tutoriel système > Comprendre les performances du disque Linux à l'aide de la commande iostat
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
Paramètre-crrqm/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).
iostat peut également être utilisé pour obtenir une partie de la valeur de l'état du CPU :
iostat -c 1 10avg-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.0013232136Comme 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.24Vous 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!