Z ciekawości (i trochę z nudów) postanowiłem że warto przetestować jak bardzo mój blog jest wydajny w obliczu dużego ruchu użytkowników. Co prawda daleko jeszcze by mówić o jakimkolwiek obciążeniu 😉 ale okazało się, że usługa Azure Web App z której korzysta Chmuroman posiada wbudowane narzędzie do testowania obciążeń.
Żeby skonfigurować test należy wejść w kartę aplikacji, którą będziemy testować, wybrać Tools i następnie Performance test.
Jeśli nie mamy konta VSTS to możemy kliknąć New i utworzyć scenariusz testowy na potrzeby którego zostanie automatycznie utworzone konto VSTS z losowo wygenerowaną nazwą. Ewentualnie można wybrać Set Account i samemu utworzyć konto.
Tworząc test podajemy takie informacje jak liczba wirtualnych użytkowników użytych do testowania, czas trwania testu oraz skąd ma być generowany ruch. Co ciekawe domyślnie testowana będzie strona z której wywołaliśmy Performance test, ale można wpisać adres jakiejkolwiek witryny dostępnej w Internecie.
Jak już załatwimy wszystkie ustawienia to wystarczy kliknąć przycisk Run test, po czym po chwili test zostanie uruchomiony i w czasie rzeczywistym możemy oglądać statystyki wydajnościowe testowanej witryny.
W moim przypadku przy wykorzystaniu jednego z tańszych planów hostingowych Azure, faktycznie witryna się mocno zamuliła co widać na wykresach poniżej. Co ciekawe jeśli chodzi o bazę danych to widać znaczny wzrost jej utylizacji ale nie osiągnęła swego limitu.
W momencie pisania tego wpisu cała wyżej opisana procedura jest darmowa jeśli mamy wykupiony dowolny plan hostingowy Azure Web App. Jedynym ograniczeniem są jednostki virtual user minutes dostępne w ramach konta VSTS. Ilość zużytych jednostek wylicza się: czas trwania testu X ilość wirtualnych użytkowników. Darmowo dostępnych jest jednak 20000/miesiąc więc do prostych testów wydajnościowych spokojnie wystarczą. Aktualny stan wykorzystania zasobów VSTS możemy podejrzeć w portalu Azure przechodząc do usługi Team Services accounts.
Fajnie, że poruszyłeś ten temat. Wydajność serwisów jest często pomijana w testach, a uważam, że jest to jedna z ważniejszych cech stron i aplikacji internetowych, które powinno się badać. Każda sekunda oczekiwania dłużej na załadowanie strony (w szczególności w branży e-commerce) to duży spadek konwersji.