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.
mysql
io
amazon-rds
Abe
źródło
źródło
Odpowiedzi:
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ść.
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.
źródło
„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-indexes
i przeszukaćmysql.slow_log
tabelę 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.
źródło
&
do jego kodu. Oczywiście nikt go nigdy nie profilował.)