Amazon RDS: Jakie są żądania We / Wy?

9

Mam instancję RDS, która kosztuje mnie dużo pieniędzy. Z mojej aktywności na koncie w Amazon wynika, że ​​instancja otrzymała około 800 000 000 żądań We / Wy w ciągu ostatnich 7 dni.

Aby dać Ci trochę perspektywy, moja aplikacja otrzymuje tylko około 6000 unikalnych wizyt dziennie i nie tworzy tak wielu połączeń z bazą danych.

Czym właściwie jest żądanie We / Wy i dlaczego ta liczba byłaby tak nieziemsko wysoka? Jestem gotów zrobić wszystko, co trzeba, aby w razie potrzeby obniżyć ten koszt, ale nie jestem pewien, co się naprawdę dzieje.

Byłbym wdzięczny za twoje myśli.

Abe
źródło
Czy znalazłeś rozwiązanie w swojej sprawie?
Kliknij Upvote

Odpowiedzi:

6

Ach, Amazon Web Services. Jeden z największych dostępnych moneysinków. Bardzo dobrze, ale nie zawsze tanio. W rzeczywistości prawie nigdy nie są tanie i zawsze trudno oszacować wydatki.

Żądanie We / Wy jest operacją dyskową. Czy to odczyt, czy zapis, jesteś w zasadzie obciążony ilością danych, które dostajesz z ich systemu. To niesamowite.

Możesz oszacować składane przez Ciebie żądania We / Wy, patrząc na iostat.

800 000 000 IOrequestów w ciągu 7 dni .. To ~ = 1300 IOPS. Łał. To jakaś niesamowita wydajność.

Na przykład, średnia baza danych witryny może mieć rozmiar 100 GB i oczekiwać średnio 100 operacji we / wy na sekundę w ciągu miesiąca. Przekłada się to na 10 USD miesięcznie kosztów przechowywania (100 GB x 0,10 USD miesięcznie) i około 26 USD miesięcznie na koszty zgłoszeń (~ 2,6 miliona sekund / miesiąc x 100 operacji we / wy na sekundę * 0,10 USD na milion operacji we / wy).

Od http://aws.amazon.com/ebs/ około 90% w dół strony

Jeśli naprawdę chcesz obniżyć koszty, może być czas, aby sprawdzić, czy RDS naprawdę najlepiej pasuje do Twojej aplikacji i budżetu projektu.

Jeśli masz tylko 6 000 odsłon dziennie, możesz lepiej radzić sobie z kosztami i wydajnością dzięki serwerowi dedykowanemu (najlepiej 2 em, jeden dla DB, jeden dla usług internetowych). Wykonywanie tego połączenia jest nieco trudniejsze, ponieważ nie powiedziałeś zbyt wiele o swojej aplikacji.

Tom O'Connor
źródło
3
Kiedy po raz pierwszy eksperymentowałem z usługą AWD SimpleDB, która jest czymś w rodzaju MongoDB, po południu skończyłem rachunek o wartości 50 USD. Jest to wygodne, ale prawie nigdy nie tanie.
Tom O'Connor,
Wydaje mi się, że EBS nie jest już powodem, dla którego widzę ten koszt w rachunku: „We / Wy jest wliczone w cenę woluminów, więc płacisz tylko za każdy GB pamięci, którą udostępniasz”. (ze strony cennika )?
hayd
Westchnięcie, okazuje się, że nadal jest dostępne w poprzedniej generacji !
hayd
6

Mam instancję RDS, która kosztuje mnie dużo pieniędzy.

„Usługi w chmurze” nie oznaczają, że rzeczy będą cię kosztować grosze. Zasadniczo żądanie We / Wy to cokolwiek (tj. Baza danych lub strona indeksu), które wymagało pobrania z dysku. Jeśli masz dużą bazę danych i zapytania wykorzystujące pełne skanowanie tabel, nie jest to wcale zaskakujące. Możesz rozważyć wyszukiwanie zapytań przy użyciu nieindeksowanych kolumn do filtrowania, włączając opcję rejestrowania „nieindeksowanych” zapytań w wolnym dzienniku MySQL i dodając indeksy dla odpowiednich kolumn. Ponieważ nie masz możliwości bezpośredniej edycji pliku konfiguracyjnego, użyj konfiguracji grupy parametrów RDS, aby ustawić log-queries-not-using-indexesi przeszukać mysql.slow_logtabelę w poszukiwaniu wpisów do dziennika.

Należy również rozważyć uruchomienie skryptu startera dostrajania MySQL z instancji AWS względem instancji bazy danych w celu przeprowadzenia ogólnej analizy wydajności, aby sprawdzić, czy większa instancja nie pomogłaby z powodu większej ilości pamięci dostępnej do buforowania, co zmniejszyłoby obciążenie dysku. Skrypt ocenia szereg parametrów konfiguracyjnych i liczników wydajności, aby podać pewne informacje o możliwych wąskich gardłach i podać ogólne zalecenia.

the-wabbit
źródło
5
To zadziwiające, jak łatwo my, ludzie, możemy przypadkowo sprawić, by komputery wykonały absurdalnie ogromne ilości pracy. Zawsze musisz cofnąć się i zmierzyć, aby upewnić się, że przypadkowo nie zmusiłeś maszyny do zrobienia czegoś zadziwiająco głupiego. (Kiedyś poprawiłem wydajność wdrożonego systemu rzeczywistego o 40% w mniej niż dziesięć minut (nie licząc czasu na skonfigurowanie profilowanej kompilacji) poprzez dodanie jednego &do jego kodu. Oczywiście nikt go nigdy nie profilował.)
David Schwartz