La microistanza di Amazon EC2 ha un utilizzo della CPU del 100%


9

La mia microistanza Amazon EC2 ha un utilizzo della CPU del 100% molto spesso. Ho solo un'installazione wordpress su di esso. Sono ancora in modalità di produzione, quindi nessun utente ma utilizzo la CPU al 100%.

Qualcuno sa come ridurlo? Ricevo ogni ora notifiche via e-mail su Amazon per un periodo di oltre 300 secondi.

Ho già spostato il mio database su RDS ma non ho risolto il problema. È solo migliorato un po '. Prima di passare a RDS con il mio database, il mio sito Web si è sempre completamente bloccato durante il caricamento di una sola pagina web.

Il mio mysqld.log dà un errore errno 12 ed è per questo che ho anche fatto innodb_buffer_pool_size = 256M in my.cnf ma non ho portato nulla.

Sarei grato per ogni suggerimento.


1
devi monitorare la tua istanza per vedere cosa sta succedendo. Non dici quale sistema operativo stai usando, ma se Linux è semplice e veloce. A lungo termine dovresti considerare qualcos'altro.
user9517

In linux top command quale processo sta divorando la tua cpu. Premi (Shift + P) per ordinare i processi secondo l'utilizzo della CPU Grazie Sandeep
ZVIK

Grazie @lian! Sì, sto usando Linux. Quindi è normale che molto spesso vada al 100% della CPU? Lo sto già monitorando con un allarme e ricevo queste fastidiose notifiche di allarme via e-mail un paio di volte al giorno. Vuoi dire che Ec2 non ne vale la pena, soprattutto se non con pacchetti piccoli solo quando investi molto? Grazie per l'aiuto
Jaba L

Grazie @ZVIK per il tuo aiuto! Potresti per favore spiegarlo un po 'più in dettaglio. Penso di non capirlo ancora. Dove posso premere (Maiusc + P). Nella riga di comando SSH? Scusa per la mia inesperienza. Un'altra cosa che appare è che il mio terminale SSH diventa molto lento dopo un po '. Digitare un comando ssh e ottenere una risposta a volte richiede molto tempo, è molto ritardato. Penso che sia a causa dell'utilizzo della CPU. Solo riavviando con i comandi "sudo service httpd stop / start" e "sudo service mysqld restart" riesco a farlo funzionare più velocemente. Ma non dura a lungo.
Jaba L

@Jaba LI supponiamo che ci sia una perdita di memoria nel codice
ZVIK

Risposte:


7

Tieni presente che le m2.microistanze sono proprio questo: sono piccole. Qualsiasi quantità reale di carico li massimizzerà.

Come ha sottolineato @zvik nei suoi commenti, dovresti scoprire quali processi consumano più memoria e / o cicli della CPU. Ha consigliato l'esecuzione top, che è un comando trovato nelle distribuzioni Linux. Premendo Shift-P, li ordinerà in base all'utilizzo della CPU. Dovrai utilizzare queste informazioni per capire dove si trova il collo di bottiglia. Ad esempio, se questo esegue Apache, la configurazione predefinita per Apache potrebbe essere quella di avviare più processi di quanti il ​​server sia in grado di fare.

Prova a eseguire tope vedere quali comandi consumano più risorse.


1
L'ho verificato e Apache sta sfruttando la maggior parte delle risorse. m2.micro si carica davvero così facilmente. Pensavo di poter usare il micro per un piccolo sito di produzione, ma questo è purtroppo impossibile. Grazie per l'aiuto
Jaba L

15

Il tuo problema potrebbe in realtà essere dovuto al "furto della CPU" che si verifica nello stack di Amazon (e di fatto, qualsiasi infrastruttura virtualizzata). Puoi leggere di più sul furto di CPU qui .

Fondamentalmente, la tua VM è inattiva e Amazon sta "prendendo in prestito" alcuni dei tuoi cicli della CPU per darli a qualcun altro che ne ha bisogno - questa è una pratica standard per un ambiente virtualizzato in cui le risorse del server fisico come l'utilizzo della RAM e i cicli della CPU sono spesso fortemente impegnate .

Per verificare il furto della CPU, esegui tope dai un'occhiata al %stvalore evidenziato qui:

comando top output

Se questo valore è diverso da zero, significa che i cicli della CPU della VM vengono "presi in prestito".


1
Grazie @ Craig-Watson per la tua risposta. Ho appena controllato% st ed è compreso tra 0-5%. Grazie anche per il link è stato molto istruttivo
Jaba L
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.