8 najlepszych narzędzi do testowania wydajności i obciążenia sieci i aplikacji
Odpowiednie narzędzia do testowania wydajności i obciążenia zależą od tego, co chcesz mierzyć. Test łącza, generowany ruch WAN i symulowani użytkownicy API odpowiadają na różne pytania. W przypadku sieci mierz przepustowość, opóźnienia, utratę pakietów i jitter; w przypadku aplikacji śledź czas reakcji, częstotliwość żądań i błędy wraz ze wzrostem obciążenia.
Przeprowadź test w kontrolowanym, autoryzowanym środowisku: generowany ruch może pogorszyć jakość usługi. Zapisz konfigurację testu, ścieżkę i ruch konkurujący, aby móc zinterpretować wynik.
Koncepcyjna ścieżka testowa sieci z pomiarami przepustowości i opóźnień.
Wybierz narzędzie dla testowanej warstwy
Przepustowość to dane dostarczane w czasie; różni się ona od nominalnej przepustowości łącza. Opóźnienie mierzy czas transmisji lub odpowiedzi, natomiast jitter to zmienność opóźnienia pakietów. Generatory ruchu generują obciążenie, ale nie mierzą zachowania aplikacji. Narzędzia do ładowania stron internetowych modelują żądania, a nie surowy ruch Ethernet.
Osiem narzędzi do testowania wydajności i obciążenia
1. iPerf3: pomiar przepustowości sieci IP
iPerf3 to darmowe narzędzie wiersza poleceń obsługiwane przez ESnet w Lawrence Berkeley National Laboratory. Uruchom serwer na jednym punkcie końcowym, a klienta na drugim, aby zmierzyć osiągalną przepustowość IP. Skonfiguruj czas trwania, strumienie równoległe oraz TCP lub UDP; wyniki obejmują przepustowość i utratę danych UDP. Jest to solidne pierwsze sprawdzenie ścieżki LAN, VPN lub WAN, ale nie modeluje sesji aplikacji ani szybkości dysku.
2. Test szybkości sieci LAN: sprawdź wydajność transferu plików
LAN Speed Test mierzy transfery do folderu współdzielonego, co ułatwia porównanie wyników z kopiowaniem plików na serwer NAS. Test obejmuje obciążenie pamięci masowej i udostępniania plików, a także obciążenie sieci. Totusoft oferuje również serwer LAN Speed Test Server, który umożliwia testowanie pamięci między komputerami, aby zredukować wąskie gardła na dysku. Producent oferuje obecnie wersję 4.4 dla systemów Windows i macOS; wersja Lite jest funkcjonalna, z wyłączonymi niektórymi zaawansowanymi funkcjami.
3. SolarWinds WAN Killer: generowanie kontrolowanego ruchu WAN
WAN Killer , będący częścią zestawu narzędzi SolarWinds Engineer's Toolset for the Desktop, generuje losowy ruch do wybranego celu. Ustaw protokół, port, rozmiar pakietu, przepustowość obwodu i procent obciążenia. Pomaga testować zachowanie łącza lub priorytetyzację ruchu pod presją; użyj osobnego monitora do pomiaru wpływu. Ten komponent systemu Windows nie jest kompleksowym testem dla użytkownika.
4. Ostinato: tworzenie profili ruchu na poziomie pakietów
Ostinato oferuje graficzny kontroler i agenty generujące ruch do budowania wielu strumieni warstwy 2 i 3, odtwarzania przechwyconych pakietów i różnicowania szybkości wysyłania. Jest przydatny do walidacji urządzeń sieciowych, obsługi protokołów i tworzenia niestandardowych miksów ruchu. Zestaw funkcji różni się w zależności od licencji, a dostawca zaznacza, że połączenia TCP z obsługą stanu nie są obsługiwane, dlatego należy użyć innego narzędzia, jeśli test opiera się na realistycznych sesjach aplikacji TCP.
5. Cisco TRex: testy obciążeniowe urządzeń sieciowych na dużą skalę
Cisco TRex to generator ruchu typu open source, oparty na protokole DPDK, z trybami bezstanowym i stanowym. Jest przeznaczony dla inżynierów testujących routery, zapory sieciowe i inny sprzęt sieciowy z profilami o dużej objętości. Konfiguracja jest bardziej skomplikowana niż w przypadku narzędzia do pomiaru przepustowości, dlatego TRex wymaga dedykowanego laboratorium z kompatybilnym sprzętem i zdefiniowanym planem testów.
Koncepcyjny test obciążenia aplikacji: symulowane zapotrzebowanie dociera do usługi, a jednocześnie śledzone są kluczowe wyniki.
6. Apache JMeter: testowanie obciążenia usług za pomocą popularnych protokołów
Apache JMeter to aplikacja testowa typu open source do obsługi serwisów internetowych, API, baz danych, komunikatów i innych usług. Jej plany testów umożliwiają modelowanie żądań, danych, asercji i współbieżności użytkowników. JMeter działa na poziomie protokołu; nie wykonuje kodu JavaScript jak przeglądarka. Apache zaleca uruchamianie testów obciążeniowych w trybie wiersza poleceń, zamiast uruchamiania intensywnego testu z poziomu interfejsu graficznego, a następnie przeglądania wygenerowanych wyników.
7. Grafana k6: obciążenia i ograniczenia wydajności skryptów API
Grafana k6 to narzędzie do testów wydajnościowych, którego skrypty oparte na JavaScript definiują żądania, scenariusze i progi. Scenariusze modelują różne wzorce obciążenia, a progi przekształcają metryki, takie jak czas trwania żądania, w kryteria zaliczenia/zaliczenia, które można uruchomić w ramach CI. Wybierz k6, gdy plany testów są powiązane z kodem aplikacji i chcesz powtarzalnych kontroli. Sprawdź, czy skrypt odzwierciedla rzeczywiste zachowanie użytkownika, zanim potraktujesz jego wyniki jako prognozę produkcyjną.
8. Wireshark: sprawdź, co wydarzyło się na kablu
Wireshark przechwytuje i analizuje pakiety; nie generuje obciążenia ani nie zapewnia samodzielnego benchmarku. Połącz go z iPerf3, generatorem ruchu lub testem aplikacji, aby sprawdzić retransmisje, wymianę protokołów i synchronizację pakietów. Filtry przechwytywania ograniczają to, co jest rejestrowane, a filtry wyświetlania zawężają to, co widzisz po przechwyceniu. Wybierz odpowiedni interfejs sieciowy i punkt przechwytywania, pamiętając, że przechwytywanie na żywo może wymagać podwyższonych uprawnień.
Koncepcyjny widok przechwytywania pakietów umożliwiający badanie ruchu generowanego podczas testu.
Szybkie wybory
Zmierz przepustowość łącza: zacznij od iPerf3; jeśli liczy się wydajność kopiowania plików, użyj LAN Speed Test.
Utwórz ruch sieciowy: użyj WAN Killer w celu uzyskania bezpośredniego, kontrolowanego obciążenia lub Ostinato i TRex w celu uzyskania niestandardowych profili pakietów.
Przeprowadź test obciążeniowy aplikacji lub interfejsu API: porównaj podejście wizualnego planu testów JMeter ze skryptami k6, które najpierw opierają się na kodzie.
Zbadaj objawy: zarejestruj je za pomocą Wiresharka podczas powtarzalnego testu.
Aby uzyskać porównywalne wyniki, zarejestruj punkty końcowe, czas trwania, protokół i ruch współbieżny. Powtórz ten sam scenariusz po zmianie, monitorując jednocześnie nasycenie sieci, serwera, pamięci masowej lub klientów.