Perché il monitoraggio ec2 mostra il 100% di CPU e solo il 20%?


10

Sto eseguendo uno script Python su un'istanza ec2 che inserisce righe in un database in un'altra istanza. Nel monitoraggio di ec2 ho visto un utilizzo della CPU del 100%, mentre top mostra solo il 20% per il processo Python. Cosa manca dall'alto? Sovraccarico di rete?


E tutti gli altri processi?
Ladadadada,

Circa lo 0% di utilizzo
RickyA

Sono anche a Dillima, invio il mio comando TOP reprot al client :)
Manish Shrivastava,

Risposte:


18

I dati esposti topsono spesso insufficienti o fuorvianti in ambienti virtualizzati come Amazon EC2 e la percentuale riportata dipende dal tipo di istanza e dall'utilizzo del core del processore sottostante (che di solito non corrisponde all'hardware virtualizzato presentato dall'hypervisor), tra altre cose - quello che stai vedendo è probabilmente causato dal rispettivo tempo di furto della CPU come esposto oggi nella maggior parte degli strumenti di monitoraggio Unix / Linux correlati - vedi ad esempio colonne% rubare o st in saro top:

st - Steal Time
La quantità di CPU "rubata" da questa macchina virtuale dall'hypervisor per altre attività (come l'esecuzione di un'altra macchina virtuale).

Il post sul blog Monitoraggio EC2: il caso della CPU rubata fornisce una bella esplorazione e illustrazione di questo argomento:

Quando il comando in alto mostra il 40% di CPU occupata ma CloudWatch dice che il server è al massimo al 100% - da che parte prendi? La risposta è semplice (CloudWatch è corretto, top no) [...]

Si noti che questa metrica dell'hypervisor sembra essere (facilmente) accessibile solo sui sistemi Unix / Linux, ma non sembra essere osservabile su Windows (ancora), vedi la mia domanda Esiste un equivalente Windows del "tempo di furto della CPU" di Unix? per ulteriori informazioni su questo problema.


2
Grazie per il post sul blog. Questo lo rende davvero chiaro. È davvero bello saperlo dal momento che sto per lanciare Ganglia, e sarebbe un peccato misurare le metriche sbagliate. Misura% idletime!
Ricky,

Nel mio caso, cloudwatch segnala anche l'utilizzo della rete 3mb / s, ma quando guardo sul mio server (con iftop, iptraf, netstat, ecc.) Vedo che l'unica cosa con una connessione di rete è il mio SSH nel server. Di cui dubito davvero che stia usando 3mb / s ...
Benubird,

-2

Amazon probabilmente controlla il carico e nessun utilizzo percentuale da TOP. Se hai due processi su cpu, possono essere utilizzati sul 20% ma puoi avere carico 2.


Non sono sicuro di cosa intendi con carico 2 ...
Ricky,

È possibile caricare il sistema a 2. Due processi sulla CPU ma con scarso utilizzo.
MartinSVK,
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.