Knowledge base
Jak dokładnie działa autoskaler?
Posted by on 04.09.2012 09:54

Autoskalery w Oktawave dzielimy na dwa rodzaje.

1. Wertykalny – to taki, który w locie dodaje bądź ujmuje zasoby obliczeniowe instancji (dokładnie RAM i CPU). Upscaling (czyli dokładnie zasobów) zazwyczaj przebiega bez konieczności restartu instancji. Downscaling (czyli odejmowanie zasobów) wymaga natomiast restartu. W trakcie restartu aplikacja/serwis może być niedostępna, ale też możemy zaplanować cały proces tak, że downscaling może zadziałać tylko w konkretnych godzinach.

Dla przykładu pomiędzy godzinami 7:00 a 23:00 pozwalamy Autoskalerowi wertykalnemu wyłącznie dodawać zasoby. Pomiędzy 23:00 a 7 rano - jeśli jest to uzasadnione - pozwalamy autoskalerowi na ujęcie zasobów, nawet kosztem restartu. Technicznie możemy też wyłączyć możliwość ujmowania zasobów w ogóle, wtedy samodzielnie zdecydujemy, kiedy powrócić do pierwotnej konfiguracji instancji.

2. Horyzontalny – jest uzupełnieniem wertykalnego i jego zadaniem jest klonowanie (tworzenie nowych) instancji w przypadku, jeśli nie ma możliwości już zwiększenia zasobów CPU/RAM na instancji źródłowej (możemy np. określić, że źródłowa instancja nie może konsumować więcej niż 16 GB pamięci). Jego działanie spowoduje, że z jednej instancji z naszym serwisem zostaną stworzone najpierw dwie instancje, później trzy i tak dalej - aż do ustawionego limitu.

To, co jest najważniejsze, to fakt że autoskaler horyzontalny działa w połączeniu z load balancingiem (rozkładaniem ruchu przychodzącego na określone instancje). Czyli jeśli nasz serwis działa na co najmniej na dwóch (lub więcej) instancjach, to zasadniczo żaden restart ani modyfikacja którejkolwiek z nich nie będą miały wpływu na dostępność serwisu. Co więcej, możemy tak skonfigurować mechanizm load balancera, aby co 10 sekund sprawdzał czy nasza aplikacja jest i działa na wszystkich instancjach i jeśli którakolwiek z nich odpowie błędem, wówczas load balancer przestanie kierować na nią ruch.

Autoskaler wertykalny reaguje nie wcześniej niż 40 minut od boota/restartu/uruchomienia instancji w krokach co 20 minut, czyli co 20 minut może wykonać akcje dodania/ujęcia zasobów instancji, bazując na raportach wykorzystania pamięci i CPU (reaguje odpowiednio wcześnie). Autoskaler horyzontalny reaguje co 20 minut. Patrząc wg kolejności zwiększania zasobów, najpierw reaguje Autoskaler wertykalny, zwiększając zasoby instancji, a następnie horyzontalny. Przy zmniejszaniu zasobów jest dokładnie odwrotnie.

Podsumowując, połączenie obu mechanizmów, gwarantuje że w żadnym momencie Twoje usługa nie przestanie być dostępna, niezależnie od tego czy zasoby są dodawane czy odejmowane.

Informacja o ograniczeniach:

Ze względu na konstrukcję obecnych systemów operacyjnych, zmiana klasy instancji OCI w przypadku uruchomionego  Autoskalera wertykalnego pomiędzy klasami posiadającymi:
- 2GB RAM i mniej a 4GB RAM i więcej dla Linuxa
- 64GB RAM i mniej a 96GB RAM i więcej dla Linuxa
- 32GB RAM i mniej a 64GB RAM i więcej dla Windowsa
będzie wymagała restartu instancji. Jest to spowodowane sposobem alokacji pamięci przez system operacyjny.

Jeśli użytkownik odznaczy opc"Zgoda na wykonanie restartu w godzinach" wówczas zmiana klasy nie będzie mogła zostać zrealizowana i w konsekwencji działanie Autoskalera zostanie wstrzymane. Rozwiązaniem problemu jest albo uruchomienie Autoskalera wertykalnego na instancji o minimalnym typie posiadającym 4GB RAM (w przypadku Linuxa) lub wyrażenie zgody na restart instancji (w trakcie zmiany klasy). Pamiętajmy, że to ograniczenie nie dotyczy zmian pomiędzy pozostałymi klasami.

(19 vote(s))
This article was helpful
This article was not helpful

Comments (0)
Post a new comment
 
 
Full Name:
Email:
Comments:
CAPTCHA Verification 
 
Please enter the text you see in the image into the textbox below. This is required to prevent automated registrations and form submissions.