GNU/Linux >> Linux Esercitazione >  >> Linux

Valutazione dell'attesa I/O della CPU su Linux

Devi stare attento quando valuti queste cifre.

  1. IOWait è correlato, ma non necessariamente linearmente, all'attività del disco.
  2. Il numero di CPU che hai influisce sulla tua percentuale.
  3. Un IOWait elevato (a seconda della tua applicazione) non necessariamente indicarti un problema. In alternativa, un piccolo IOWait può tradursi in un problema per te. Fondamentalmente si riduce a quale compito è in attesa.

IOWait in questo contesto è la misura del tempo in un dato periodo che una CPU (o tutte le CPUS) ha trascorso inattiva perché tutte le attività eseguibili erano in attesa che un'operazione di IO fosse soddisfatta.

Nel tuo esempio, se hai 20 CPU, con un'attività che sta davvero martellando il disco, questa attività sta (in effetti) trascorrendo il 100% del suo tempo in IOWait, successivamente la CPU su cui viene eseguita questa attività trascorre quasi il 100% del suo tempo in Aspetta. Tuttavia, se altre 19 CPU sono effettivamente inattive e non utilizzano questo disco, segnalano 0% IOWait. Ciò si traduce in una percentuale media di IOWait del 5%, quando in realtà se dovessi dare un'occhiata all'utilizzo del tuo disco, questo potrebbe riportare il 100%. Se l'applicazione in attesa su disco è fondamentale per te, questo 5% è in qualche modo fuorviante perché l'attività nel collo di bottiglia sta riscontrando probabilmente problemi di prestazioni molto più elevati rispetto al rallentamento del 5%.

ci sono quasi tanti processi CPU in attesa che funzionanti? (=> cattivo)

Probabilmente, ricorda che per la maggior parte le CPU eseguono attività e le attività sono ciò che richiede IO. Se due attività separate sono impegnate a interrogare lo stesso disco su due CPU separate, ciò metterà entrambe le CPU al 100% di IOWait (e nell'esempio con 20 CPU un IOWait medio complessivo del 10%).

Fondamentalmente se hai molte attività che richiedono IO, specialmente dallo stesso disco, in più quel disco è utilizzato al 100% (vedi iostat -mtx ) allora questo non va bene.

i processi di lavoro attendono il 5,0% del loro piano di esecuzione? (=> ok in questo caso)

No. I processi di lavoro sono quasi certamente in attesa a tempo pieno di IO. È solo che il caso di report medio ("le altre CPU non sono occupate") confonde la percentuale o il fatto che la CPU ha molte attività da eseguire, molte delle quali non hanno bisogno di eseguire IO.

Come regola generale, su un sistema multi-CPU, una percentuale di IOWait pari al numero di CPU che hai diviso per 100 è probabilmente qualcosa su cui indagare.

qualcos'altro

Vedi sopra. Ma tieni presente che le applicazioni che eseguono scritture molto pesanti sono limitate (smetti di usare il writeback, inizia a scrivere direttamente sul disco). Ciò fa sì che tali attività producano un IOWait elevato mentre altre attività sulla stessa CPU che scrivono sullo stesso disco no. Quindi esistono eccezioni.

Nota anche se hai 1 CPU dedicata all'esecuzione di 2 attività, una è una lettura/scrittura IO pesante e l'altra è un utente pesante della CPU, quindi la CPU segnalerà 50% IO Aspetta in questo caso, se hai 10 attività come questa sarebbe un IOWait del 10% (e un carico orribile), quindi il numero può essere riportato molto più basso di quello che potrebbe effettivamente essere un problema.

Penso che tu abbia davvero bisogno di dare un'occhiata a iostat -mtx per ottenere alcune metriche sull'utilizzo del disco e pidstat -d per ottenere alcune metriche per processo, considera se le applicazioni che colpiscono quei dischi in quel modo potrebbero causare un problema o se altre potenziali applicazioni che colpiscono quei dischi potrebbero causare un problema.

Le metriche della CPU fungono davvero da indicatori dei problemi sottostanti, sono generali, quindi capire dove potrebbero essere troppo generale è una buona cosa.


Linux
  1. Impara le nozioni di base su come funziona il reindirizzamento I/O (Input/Output) di Linux

  2. Linux:come monitorare l'I/o del disco in una directory particolare?

  3. Come si esegue l'I/O della console non bloccante su Linux in C?

  4. Come fermare il processo "ininterrotto" su Linux?

  5. Come eliminare le cache di I/O su disco su Linux?

Come il kernel Linux gestisce gli interrupt

10 Linux iostat Comando per segnalare la CPU e le statistiche di I/O

Risoluzione dei problemi di server lenti:come controllare CPU, RAM e I/O del disco

10 esempi di iozone per la misurazione delle prestazioni di I/O del disco su Linux

I 15 migliori software di clonazione del disco per desktop Linux

Calo massiccio e imprevedibile delle prestazioni di I/O in Linux