W którym momencie korzystanie z EBS stanowi wąskie gardło?


10

Mam witrynę hostowaną na Amazon za pomocą instancji EC2 wspieranej przez wolumin EBS. W weekendy wzrost natężenia ruchu i ja powiększamy instancję, co trochę pomaga - nie widzę już wzrostu wykorzystania procesora do 100%, a serwer przestaje odpowiadać.

Zauważam jednak, że odczyty dysku są również bardzo wysokie (nie można na to poradzić, nie sądzę) i zastanawiam się, w którym momencie zobaczę jakąś awarię, ponieważ dysk nie może utrzymać w górę?

Jak widać na załączonym zrzucie ekranu, w weekend osiągnął maksymalny poziom 80 MB / minutę. Czy ktoś ma doświadczenie z AWS i wie, w którym momencie będę musiał przejść do zrównoważonych obciążeń wielokrotnych, ponieważ EBS staje się wąskim gardłem?

Wykres użytkowania EBS


2
Myślę, że potrzebujemy tutaj szczegółów warstwy aplikacji. Jaka jest aktywność odczytu dysku? Losowy dostęp do zdjęć / zasobów? Duże sekwencyjne odczyty (np. Kopie zapasowe bazy danych lub analizy)? Pamiętaj, że możesz uruchomić wiele woluminów EBS dołączonych do pojedynczej instancji, wykonując program RAID-0 w celu poprawy.
rmalayter

większość z tych odczytów to mniejsze pliki (mniej niż 1 MB, wiele mniej niż 500 KB), ale nie „małe” pliki. Nie mam pojęcia, czy jest to obciążenie dla wolumenu EBS, czy też ten ruch jest trywialny - i nie mam pojęcia, jak to rozgryźć.
ESW

Właśnie pisałem odpowiedź z RAID i EBS, kiedy czytałem twój komentarz, malayter. Dodałbym, że RAID10 może być bardziej elastycznym rozwiązaniem, ponieważ powinno poprawić odczyt i zapis.
tsykoduk

@tsykoduk Ogólnie rzecz biorąc, wszystkie typy pamięci AWS mają nieco nieoczywistą wydajność i chociaż może się wydawać, że RAID10 może poprawić wydajność, naprawdę lepiej jest przetestować testy porównawcze z wzorcami dostępu i obciążeniem, jakie może spotkać twoją prawdziwą aplikację . Nawet wtedy Twoja wydajność może się czasem bardzo różnić w środowisku AWS w porównaniu z rozwiązaniem hostowanym przez siebie, w którym masz większą kontrolę - a tym samym większą przewidywalność - nad wydajnością pamięci. Ogólnie rzecz biorąc, posiadanie więcej niż jednego woluminu w konfiguracji RAID może mieć pozytywny wpływ.
aculich

Odpowiedzi:


5

Pierwszą rzeczą, o której należy pamiętać, która będzie miała największy wpływ na wydajność we / wy, jest typ używanego wystąpienia .

Instance Type   I/O Performance
-------------   ---------------
t1.micro        Low
m1.small        Moderate
m2.xlarge       Moderate
c1.medium       Moderate
m1.large        High
m1.xlarge       High
m2.2xlarge      High
m2.4xlarge      High
c1.xlarge       High
cc1.4xlarge     Very High (10 Gigabit Ethernet)
cc2.8xlarge     Very High (10 Gigabit Ethernet)
cg1.4xlarge     Very High (10 Gigabit Ethernet)

Jeśli chodzi o wolumeny EBS i wydajność, którą uzyskasz, jak sugeruje FAQ AWS , musisz przetestować aplikację, aby zobaczyć, czego się spodziewać:

P: Jakiego rodzaju opóźnień i przepustowości oczekuję od wolumenów Amazon EBS? Opóźnienie od wystąpienia Amazon EC2 do woluminu Amazon EBS jest podobne do opóźnienia, które można zaobserwować na lokalnym dysku magazynu wystąpień Amazon EC2. Szybkości operacji we / wy mogą się znacznie różnić w zależności od wielkości żądań, losowości wzorców dostępu i strategii buforowania używanej przez aplikację. W związku z tym najdokładniejszym miernikiem jest przetestowanie konkretnej aplikacji na wolumenie Amazon EBS.

Oznacza to, że wskaźniki EBS, które otrzymujesz, niekoniecznie muszą być gorsze lub lepsze niż pamięć instancji lokalnej; to naprawdę zależy od twojego zachowania dostępu do danych.

Więcej informacji znajduje się na stronie AWS EBS :

Wydajność wolumenu Amazon EBS

Woluminy Amazon EBS są zaprojektowane tak, aby oferować wyższą przepustowość niż sklepy instancji Amazon EC2 dla aplikacji wykonujących wiele losowych dostępów w całym zestawie danych. Możesz także dołączyć wiele woluminów do instancji i rozłożyć je na woluminach, aby osiągnąć dalszy wzrost przepustowości.

Dokładna wydajność będzie zależeć od aplikacji (np. Losowe vs. sekwencyjne We / Wy lub duże kontra małe rozmiary żądań), dlatego najlepszym miernikiem jest porównanie rzeczywistych aplikacji z wolumenem. Ponieważ woluminy Amazon EBS wymagają dostępu do sieci, w przypadku większych instancji zobaczysz szybszą i bardziej spójną wydajność.

Należy również pamiętać, że wydajność we / wy obejmuje nie tylko operacje we / wy dysku, ale także ruch sieciowy ... więc im większy ruch sieciowy wystąpi, tym mniej operacji we / wy dysku.

W zależności od tego, co serwujesz, buforowanie obiektów w pamięci może znacznie pomóc, jeśli jest to możliwe w przypadku twojego typu aplikacji.

Ponadto, oto kilka postów na blogu, które porównują wydajność EBS i lokalnych (efemerycznych) woluminów w różnych konfiguracjach RAID i poprawek dla uzyskania dobrej wydajności IO:

Dyski efemeryczne EC2 a woluminy EBS w macierzy RAID

Wydajność we / wy Amazon EC2: lokalne dyski efemeryczne a woluminy RAS 0 Striped EBS

Pierwsze dobre IO z EBS Amazon


2
Wygląda na to, że ta strona zawiera również dobre informacje: ec2instances.info
Gianfranco P.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.