Instancja mikro Amazon EC2 ma 100% wykorzystanie procesora

9

Moja instancja mikro Amazon EC2 bardzo często używa procesora w 100%. Mam tylko instalację Wordpress. Nadal jestem w trybie produkcyjnym, więc nie ma użytkowników, ale mam 100% użycia procesora.

Czy ktoś wie, jak to zmniejszyć? Otrzymuję powiadomienia Amazon e-mail co godzinę, ponieważ trwa to ponad 300 sekund.

Przenosiłem już bazę danych do RDS, ale nie rozwiązałem tego problemu. To tylko sprawiło, że było trochę lepiej. Przed przejściem do RDS z moją bazą danych moja witryna zawsze ulegała awarii podczas ładowania tylko jednej strony internetowej.

Mój mysqld.log podaje błąd errno 12, dlatego też zrobiłem innodb_buffer_pool_size = 256M w pliku my.cnf, ale nic nie przyniosłem.

Byłbym wdzięczny za każdą wskazówkę.

Jaba L.
źródło
1
musisz monitorować instancję, aby zobaczyć, co się dzieje. Nie mówisz, jakiego systemu operacyjnego używasz, ale jeśli Linux, to szybko i łatwo do góry. W dłuższej perspektywie powinieneś rozważyć coś innego.
user9517,
W poleceniu linux top jaki proces zjada procesor. Naciśnij (Shift + P), aby posortować procesy według wykorzystania procesora. Dzięki Sandeep
ZVIK
Dzięki @lian! Tak, używam Linuksa. Czy to normalne, że po prostu bardzo często dochodzi do 100% procesora? Monitoruję go już z alarmem i otrzymuję te irytujące powiadomienia alarmowe e-mailem kilka razy dziennie. Czy masz na myśli, że Ec2 nie jest tego warte, szczególnie nie w przypadku małych pakietów tylko przy dużych inwestycjach? Dzięki za pomoc
Jaba L
Dzięki @ZVIK za twoją pomoc! Czy możesz wyjaśnić to bardziej szczegółowo. Myślę, że jeszcze tego nie rozumiem. Gdzie mogę nacisnąć (Shift + P). W wierszu polecenia SSH? Przepraszam za mój brak doświadczenia. Inną rzeczą, która się pojawia, jest to, że mój terminal SSH po pewnym czasie działa bardzo wolno. Wpisanie polecenia ssh i uzyskanie odpowiedzi czasami zajmuje bardzo dużo czasu, jest bardzo opóźnione. Myślę, że dzieje się tak również ze względu na użycie procesora. Tylko po ponownym uruchomieniu za pomocą poleceń „sudo service httpd stop / start” i „sudo service mysqld restart”, ponownie uruchamiam go szybciej. Ale to nie trwa długo.
Jaba L,
@Jaba LI przypuszczam, że w kodzie jest wyciek pamięci
ZVIK,

Odpowiedzi:

7

Pamiętaj, że m2.microinstancje są po prostu takie - są małe. Każda rzeczywista ilość obciążenia zmaksymalizuje je.

Jak zauważył @zvik w swoich komentarzach, powinieneś dowiedzieć się, jakie procesy zużywają najwięcej pamięci i / lub cykli procesora. Zalecił uruchomienie top, które jest poleceniem znajdującym się w dystrybucjach Linuksa. Naciskając Shift-P, posortuje je według zużycia procesora. Musisz użyć tych informacji, aby dowiedzieć się, gdzie jest wąskie gardło. Na przykład, jeśli działa Apache, domyślną konfiguracją Apache może być uruchomienie większej liczby procesów, niż jest w stanie zrobić serwer.

Spróbuj uruchomić topi zobaczyć, które polecenia zużywają najwięcej zasobów.

Andrew M.
źródło
1
Sprawdziłem to, a Apache zajmuje najwięcej zasobów. m2.micro naprawdę łatwo się ładuje. Pomyślałem, że mogę użyć mikro do małego zakładu produkcyjnego, ale niestety jest to w ogóle możliwe. Dzięki za pomoc
Jaba L,
15

Twój problem może w rzeczywistości polegać na „kradzieży procesora”, która ma miejsce na stosie Amazon (a właściwie w każdej zwirtualizowanej infrastrukturze). Możesz przeczytać więcej o kradzieży procesora tutaj .

Zasadniczo maszyna wirtualna jest bezczynna, a Amazon „pożycza” niektóre cykle procesora, aby dać ją komuś, kto jej potrzebuje - jest to standardowa praktyka w zwirtualizowanym środowisku, w którym zasoby serwerów fizycznych, takie jak użycie pamięci RAM i cykle procesora, są często nadmiernie nadmiernie zaangażowane .

Aby sprawdzić kradzież procesora, uruchom topi sprawdź %stwartość wyróżnioną tutaj:

wyjście polecenia top

Jeśli ta wartość jest inna niż zero, oznacza to, że cykle procesora maszyny wirtualnej są „pożyczane”.

Craig Watson
źródło
1
Dziękuję bardzo @ craig-watson za odpowiedź. Właśnie sprawdziłem% st i wynosi między 0-5%. Dzięki za link też był bardzo pouczający
Jaba L