Confuso dai valori della CPU nel comando 'top' di Unix


11

Nella schermata seguente, la CPU complessiva viene segnalata come 3% ma il processo mysqld viene segnalato come utilizzando il 57%. Questo è il 57% del 3% complessivo e quindi mysqld utilizza solo circa l'1,5% della CPU?

top screenshot http://img.skitch.com/20090620-cih33piwnnrke6aw41y9p1phwr.jpg

AGGIORNAMENTO : un commentatore di seguito ha chiesto di premere il tasto '1' e di pubblicare i risultati: il tasto 1 http://img.skitch.com/20090620-gayja43s44qtw2wkw4aq642e8c.jpg

Risposte:


11

Il 57,6% indica che mysqld sta usando 0,576 di una CPU. È probabile che la discrepanza sia una condizione di competizione tra la raccolta dei dati per l'intero sistema e la raccolta dei dati per processo.

EDIT: in base al tuo aggiornamento sembra che tu abbia 16 core.

57.5% => .575/16 = .036 = 3.6%.

Ecco da dove proviene il tuo 3%.

Se sommate tutte le percentuali di inattività e sottraete dal 1600%, anche questo arriva a circa il 57,5%.


3

Puoi provare a premere il numero 1 quando top è in esecuzione e vedere cosa succede.

Modificare:

Mr Unknown lo dice bene.

top sta dicendo "Se avessi un core della CPU, sarebbe occupato al 57,5%."

Ma hai 16 core. Quindi questo numero 57 è distribuito ovunque, con mysqld multi-thread e tutto ...

Un po 'confuso. Ma penso che questo sia perché top troverebbe più difficile visualizzare informazioni per ogni core ... immagina una top line di informazioni con 16 o più core!

Inoltre, sommando tutto il tempo della CPU "% us"

1.7+1.0+2.3+1.0+7.4+11.1+15.1+8.7 = 48.3
48.3/16 = 3.01875

Ecco da dove proviene il numero del 3% ...


fatto; vedi domanda aggiornata.
Teflon Ted,

1

Qualcuno ha raccomandato htop? Non che sarebbe d'aiuto con questa particolare domanda più delle risposte precedenti, ma mi sento obbligato a menzionare htopogni volta che vedo qualcuno che sta ancora usando top!


0

Non so dire se il tuo top sta unendo più CPU che hai, ma non avrebbe molto senso.

Ciò che potrebbe accadere è che top non ottenga contemporaneamente i valori per ogni processo e l'utilizzo totale della CPU. C'è un piccolo lasso di tempo in cui mysql potrebbe essersi arrestato o iniziato a utilizzare molta CPU tra il momento in cui le informazioni sul processo vengono lette e quelle globali. Potrebbe essere solo una semplice condizione di gara.

Ovviamente, questo sarebbe dovuto succedere abbastanza a lungo da farti notare, quindi immagino che questo potrebbe essere solo uno strano bug da qualche parte nella parte superiore o nella contabilità del kernel.


0

noi: userspace - cosa stai eseguendo sopra il kernel sy: chiamate di sistema - cosa sta funzionando all'interno del kernel ni: id processi rinviati: idle wa: in attesa di i / o hi: hardware si interrompe - quanto tempo viene impiegato a gestire l'hardware si: interruzioni del software - quanto tempo impiega a gestire le interruzioni create dal software (chiamate di sistema, ecc.)

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.