Zacznę od przeczytania artykułu na ten temat w Wikipedii .
Krótko mówiąc, skalowalność to wzrost wydajności systemu wraz z dodawaniem większej ilości zasobów lub, alternatywnie, wzrost wykorzystania zasobów wraz ze wzrostem obciążenia . Na przykład, ilu równoczesnych użytkowników może obsłużyć witrynę, dopóki czas odpowiedzi nie przekroczy 0,3 sekundy? To samo pytanie po podwojeniu dostępnej pamięci RAM / dysku / procesora / itp. Prawdopodobnie możesz wykorzystać swoją wiedzę na temat wewnętrznych elementów aplikacji, aby zdecydować, które parametry warto sprawdzić.
Skonfiguruj stanowisko testowe za pomocą serwera i jednego lub więcej komputerów klienckich. Użyj jakiegoś narzędzia, aby ograniczyć ilość zasobów dostępnych dla serwera (np. ulimit
) Lub uruchom aplikację zakłócającą na serwerze. Zmierz, w jaki sposób serwer radzi sobie z żądaniami klientów. Powtórz powyższe etapy stopniowo zwiększając / zmniejszając obciążenie / dostępne zasoby. Na końcu dostajesz n-wymiarową przestrzeń z kropkami. Łatwiej może być zmienić tylko jeden parametr na raz, jednocześnie ustawiając wszystkie inne na pewną typową wartość (lub kilka wartości). W takim przypadku możesz przedstawić wynik jako wiązkę wykresów 2D z wydajnością serwera (np. Liczbą użytkowników / żądań) na jednej osi i wykorzystaniem / dostępnością zasobów na drugiej.
Istnieją bardziej złożone scenariusze, w których aplikacja korzysta z kilku serwerów dla kilku części aplikacji, a Ty możesz zmieniać ich liczbę i proporcje, ale myślę, że to nie twój przypadek. Prawdopodobnie możesz chcieć zmienić liczbę wątków / procesów, jeśli to ma znaczenie.
Jeśli mierzysz całą aplikację, zwykle nie potrzebujesz dostępu do kodu źródłowego. Jednak możesz być ciekawy w mierzeniu pewnej określonej części kodu (np. Tylko DB lub UI). Następnie możesz użyć kodu źródłowego, aby udostępnić tylko ten moduł do pomiarów i uruchomić testy. Nazywa się to mikrobenchmarkem .
Jeśli szukasz przykładów, jest ich wiele w artykułach akademickich. Wyszukaj w Google Scholar ocenę wydajności + preferowane hasła.