Dlaczego monitorowanie ec2 wykazuje 100% procesora, a najwyższe tylko 20%?

10

Korzystam ze skryptu python na instancji ec2, która wstawia wiersze do bazy danych na innej instancji. W monitorowaniu ec2 widziałem wykorzystanie 100% procesora, podczas gdy top pokazuje tylko 20% dla procesu python. Czego brakuje u góry? Narzut sieciowy?

RickyA
źródło
A co z pozostałymi procesami?
Ladadadada,
Przy zużyciu około 0%
RickyA
Jestem również w Dillima, wysyłam moje TOP repprot do klienta :)
Manish Shrivastava

Odpowiedzi:

18

Dane, na które są narażone, topsą często niewystarczające lub wprowadzają w błąd w zwirtualizowanych środowiskach, takich jak Amazon EC2, a zgłaszany odsetek zależy od typu instancji i podstawowego wykorzystania rdzenia procesora (co zwykle nie odpowiada zwirtualizowanemu sprzętowi, który otrzymujesz od hiperwizora), między innymi inne rzeczy - to, co widzisz, jest najprawdopodobniej spowodowane odpowiednim czasem kradzieży procesora, co jest obecnie widoczne w większości powiązanych narzędzi monitorowania Unix / Linux - patrz np. kolumny% steal lub st in sarlub top:

st - Czas kradzieży
Ilość procesora „skradzionego” z tej maszyny wirtualnej przez hiperwizora dla innych zadań (takich jak uruchomienie innej maszyny wirtualnej).

Wpis na blogu Monitorowanie EC2: przypadek skradzionego procesora zapewnia miłą eksplorację i ilustrację tego tematu:

Kiedy górna komenda wyświetla 40% zajętości procesora, ale CloudWatch mówi, że serwer jest maksymalnie 100% - po której stronie? Odpowiedź jest prosta (CloudWatch jest poprawny, góra nie jest) [...]

Należy pamiętać, że ten wskaźnik hiperwizora wydaje się (łatwo) dostępny tylko w systemach Unix / Linux, ale wydaje się, że nie jest możliwy do zaobserwowania w systemie Windows (jeszcze), patrz moje pytanie Czy istnieje odpowiednik systemu Windows dla czasu kradzieży procesora w systemie Unix? po więcej informacji na temat tego problemu.

Steffen Opel
źródło
2
Dzięki za wpis na blogu. To naprawdę wyjaśnia. Naprawdę dobrze jest o tym wiedzieć, ponieważ zamierzam wprowadzić Ganglię, a wstydem byłoby zmierzenie niewłaściwych wskaźników. Zmierz% czasu bezczynności!
RickyA,
W moim przypadku cloudwatch również zgłasza użycie sieci 3 Mb / s, ale kiedy patrzę na mój serwer (z iftop, iptraf, netstat itp.), Widzę, że jedyną rzeczą z połączeniem sieciowym jest moje ssh na serwerze. W co wątpię, używa 3
Mb
-2

Amazon prawdopodobnie sprawdza obciążenie i brak procentowego zużycia od TOP. Jeśli masz dwa procesy na procesorze, można je wykorzystać na 20%, ale możesz mieć obciążenie 2.

MartinSVK
źródło
Nie jestem pewien, co masz na myśli z obciążeniem 2 ...
RickyA,
Obciążenie systemu może wynosić 2. Dwa procesy na CPU, ale przy niskim zużyciu.
MartinSVK,