Skalowalność mierzy się w kategoriach przepustowości w oparciu o pewną zmienną. Na przykład liczba żądań na sekundę dla użytkowników X. Najprostszym sposobem opisania skalowalności jest:
Miara wydajności wraz ze wzrostem obciążenia.
Pierwszą rzeczą, którą musisz zrozumieć, projektując skalowalność, jest to, jaki pomiar jest najważniejszy dla Twojej aplikacji? Istnieje kilka sposobów pomiaru wydajności, która jest kluczowym elementem skalowalności:
- Współbieżne żądania na sekundę
- Średni czas odpowiedzi na zapytanie
- Liczba przetworzonych rekordów na sekundę / minutę
Istnieje więcej pomiarów wydajności, które można zastosować, ale są one powszechne w systemach sieciowych lub systemach przetwarzania wsadowego.
Kolejnym aspektem skalowalności jest pomiar tego, co dzieje się z wydajnością w miarę wzrostu obciążenia. Typowe sposoby zwiększania obciążenia to:
- Więcej użytkowników trafiających na serwer (tj. Większy ruch w sieci)
- Więcej danych w bazie danych (tzn. Zapytania trwają dłużej lub przetwarzanie trwa dłużej)
- Awaria dysku twardego w macierzy RAID (wpływ na wydajność / niezawodność pamięci masowej)
- Nasycenie sieci
Celem skalowalnej aplikacji jest utrzymanie lub poprawa wydajności, gdy mamy do czynienia z problemem obciążenia. Krótko mówiąc, jeśli czas reakcji trwa zbyt długo, czy możemy dodać kolejny serwer, aby równomiernie rozłożyć obciążenie? Takie podejście zmniejsza nakład pracy jednego serwera i utrzymuje serwery w tym „najlepszym miejscu” pod względem wydajności.
Twoja aplikacja będzie musiała zostać zaprojektowana specjalnie do skalowania. Oznacza to, że musisz uważać na dane sesji, kierując żądania do właściwego serwera, zmniejszając wąskie gardła ograniczające możliwości skalowania aplikacji.