(Un ragazzo di Windows chiede) Misurare la latenza del disco su Linux: mi preoccupo?


11

Su Windows, ogni volta che voglio convalidare / confermare che potrebbero esserci problemi relativi all'IO su un volume su cui vive un database o un'altra app a bassa latenza, controllo la latenza del disco.

Se vedo costantemente il contatore Secondi / Trasferisci disco medio di Windows > 18-20 ms, il mio canarino in una miniera di carbone è appena morto e devo indagare ulteriormente. Drop-dead semplice.

Sto guardando Linux ora e non vedo una metrica simile basata sulla latenza. La rapida ricerca che ho fatto indica che forse non VOGLIO nemmeno ... Vedo molti riferimenti a I / O Wait come il modo in cui la maggior parte delle persone lo segue.

C'è una regola empirica che usi in merito? Ad esempio, QUALSIASI I / o aspettare di vedere male per il volume di un database? Esiste un semplice comando iostat che mi dà uno sguardo migliore alla salute generale del disco rispetto al solo TOP di bulbo oculare?

Grazie mille!


4
Puoi cercareioping
ewwhite

Grazie, @ewwhite. Immagino che mi sto solo chiedendo se devo cambiare completamente la mia attenzione e invece monitorare questo in un modo diverso, sai?
Russell Christopher,

2
Abilita la raccolta sysstat sui tuoi sistemi. Quindi puoi esaminare la percentuale di CPU iowait, che è molto utile per diagnosticare la lentezza relativa all'IO.
SEE

2
@RussellChristopher Puoi vedere l' saroutput di esempio qui . Presta attenzione alla %iowaitcolonna.
SEE

@Matt mentre è MOLTO simile, la messa a fuoco è leggermente diversa. Quel QA è più focalizzato sull'esecuzione di test in un ambiente simulato, dove questo Q sembra essere più sul monitoraggio delle prestazioni attuali nell'ambiente di produzione.
BeowulfNode42

Risposte:


12

Personalmente uso il comando iostat -xk 10e guardo la awaitcolonna.

  • -x Visualizza statistiche estese.
  • -k Visualizza le statistiche in kilobyte al secondo. Oppure usa m per megabyte / s.
  • 10 intervallo di visualizzazione in secondi

Questa è una metrica praticamente identica al sec / trasferimento medio del disco di Windows ed è elencata in ms anziché in secondi. Quindi potrebbero essere applicate regole pratiche simili, anche se ciò dipenderà da ogni sorta di cose. In genere trovo che gli utenti inizino a brontolare a 15ms e 20ms è molto male.

Premi ctrl + c per uscire o specifica il numero di iterazioni da visualizzare con il parametro count. Si noti che il risultato della prima iterazione è fortemente distorto a causa del piccolo campione di tempo utilizzato nella prima iterazione.

Dalla man iostatpagina

wait Il tempo medio (in millisecondi) per le richieste I / O emesse sul dispositivo da servire. Ciò include il tempo impiegato dalle richieste in coda e il tempo impiegato per gestirle.

Modifica: await è la metrica principale che utilizzo per guardare un disco sotto carico di produzione per vedere se il suo throughput e iops sono in grado di tenere il passo con la domanda.

% Iowait stat riguarda maggiormente l'equilibrio tra CPU e utilizzo del disco. % iostat rimarrà inferiore al previsto se sia la CPU che l'attività del disco sono elevate. D'altra parte, a partire da livelli di utilizzo del disco abbastanza bassi,% iostat può essere relativamente alto se la cpu è inattiva. Detto questo, l'attesa deve essere presa anche con un granello di sale. Se si verificano molte sequenze di lettura / scrittura sequenziali, la figura verrà spostata su un valore inferiore e la regola empirica di 18 ~ 20 ms non sarà utile in queste condizioni perché la maggior parte dei blocchi in scrittura sarà costituita da dati sequenziali e verrà revisionata dal disco molto rapidamente, mentre l'altro io casuale sarà in attesa, a causa del sistema Native-Command-Queuing (NCQ) incorporato nel disco per ottimizzare il throughput consentendo al disco di scegliere la sequenza in cui le richieste vengono gestite.


Grazie @ beowulfNode42. È questa la metrica principale che usi in termini di "disco danneggiato"? New Relic, sembra concentrarsi sull'attesa di I / O e sulla percentuale di utilizzo del disco (lettura e scrittura) ... Questo mi fa chiedermi se sto inseguendo la metrica sbagliata o se STANNO semplicemente riportando informazioni meno utili ....
Russell Christopher,

@RussellChristopher le altre statistiche forniscono il contesto richiesto in cui interpretare le informazioni di attesa. ad esempio, ci sono molti iops (r / e w / s), molti MB / s, è la dimensione della richiesta avg (avgrq-sz) grande o piccola, e quale è la dimensione della coda avg (avgqu-sz). Sì, insieme alle metriche relative alla cpu% iowait,% user,% system ecc. Per vedere se il disco sta rallentando la cpu o viceversa.
BeowulfNode42
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.