Jak przetestować wydajność serwerów: zbiór kilku open source benchmarków

Kontynuujemy naszą serię materiałów poświęconych testowaniu wydajności serwerów. Dziś porozmawiamy o kilku sprawdzonych benchmarkach, które są nadal wspierane i aktualizowane — NetPerf, HardInfo i ApacheBench.

Jak przetestować wydajność serwerów: zbiór kilku open source benchmarków
Zdjęcie — Peter Balcerzak — CC BY-SA

NetPerf

Jest to narzędzie do oceny przepustowości sieci. Zostało opracowane przez inżynierów z firmy Hewlett-Packard. Narzędzie zawiera ma dwa pliki wykonywalne: netserver i netclient. Aby przeprowadzić test, należy je uruchomić na różnych maszynach. Domyślnie netperf używa portu 12865, ale można go zmienić za pomocą flagi -p. Używa protokołów TCP i UDP przez BSD Sockets, DLPI, Unix Domain Sockets oraz IPv6.

Obecnie netperf wchodzi w skład narzędzi do benchmarkingu Flent. Korzysta z niego również wiele firm IT, na przykład Red Hat. Oto jak wygląda opis usługi netperf w jednym z przykładów oceny wydajności OpenShift:

apiVersion: v1
kind: Service
metadata:
  labels:
    app-name: netperf
  name: netperf
  namespace: your_project
spec:
  ports:
  - port: 12865
    protocol: TCP
    targetPort: 12865
  selector:
    app-name: netperf
  sessionAffinity: ClientIP
  type: ClusterIP

W oficjalnym repozytorium stwierdzono, że netperf jest dystrybuowane na podstawie specjalnej licencji Hewlett-Packard. Jednak twórca narzędzia — Rick Jones — twierdzi, że jest ono zgodne z najlepszymi tradycjami open source. Należy również zauważyć, że ostatnio aktualizacje dla netperf zaczęły się pojawiać dość rzadko. Być może jest to spowodowane dojrzałością produktu.

Netperf ma swoje odpowiedniki — na przykład, iperf2 i iperf3. Pozwalają one również przetestować przepustowość sieci. Prace nad iperf3 rozpoczęto po tym, jak repozytorium iperf2 zaczęło zanikać. Nowa wersja została napisana od podstaw i nie jest kompatybilna z poprzednią wersją, chociaż zawiera część jej kodu. Co ciekawe, po wydaniu iperf3, prace nad iperf2 znów nabrały tempa. W rezultacie oba narzędzia mają podobną, ale jednocześnie różną funkcjonalność. Na przykład, iperf2 jest wielowątkowy, a iperf3 — pracuje tylko z jednym wątkiem.

Hardinfo

Jest to narzędzie do zbierania informacji o sprzęcie i systemie operacyjnym. Wyświetla dane o pracy urządzeń na: PCI, ISA PnP, USB, IDE, SCSI oraz portach szeregowych i równoległych. Można je również wykorzystać jako benchmark i narzędzie monitorujące.

HardInfo oferuje kilka testów. Na przykład, CPU Blowfish — ocenia wydajność procesora za pomocą algorytmów kryptograficznych szyfrowania blokowego. Jest CPU N-Queens — test z kombinatoryki. System rozwiązuje problem szachowy umieszczania N królowych na planszy N x N. Ustawia figury tak, aby żadna z nich nie mogła zaatakować innych. Należy również zaznaczyć FPU FFT — test szybkiego obliczania dyskretnej transformaty Fouriera oraz FPU Raytracing — obliczanie śledzenia promieni podczas renderowania sceny 3D.

Wynik w większości testów podawany jest w sekundach i, odpowiednio, im jest mniejszy — tym lepiej. Wszystkie raporty są prezentowane w formatach HTML i txt.

Początkowo narzędzie było rozwijane w ramach projektu BerliOS. Zawierał platformę hostingową dla aplikacji z otwartym źródłem (takich jak SourceForge) i kilka baz danych do dokumentacji oraz profili programistów open source. BerliOS zamknięto w 2014 roku z powodu braku finansowania. Dziś HardInfo rozwija się dzięki wysiłkom entuzjastów w oddzielnym repozytorium. na GitHubie.

Należy zauważyć, że w działaniu systemu czasami występują błędy. Znane są przypadki okresowo pojawiającego się błędu segmentacji, problemów z wyświetlaniem urządzeń USB i kilku innych.

ApacheBench

Narzędzie do testowania obciążeniowego serwerów HTTP. ApacheBench (AB) był rozwijany w celu sprawdzania Apache, ale może działać na każdym innym serwerze. Narzędzie jest wstępnie zainstalowane w wielu dystrybucjach Linux.

Jak przetestować wydajność serwerów: zbiór kilku open source benchmarków
Zdjęcie — Victor Freitas Czym tak naprawdę jest problem

Narzędzie "bombarduje" serwery dużą liczbą żądań. Aby je uruchomić, należy wpisać następującą komendę:

ab -n 100 -c 10 http://www.example.com/

Wyśle sto żądań GET (jednocześnie maksymalnie dziesięć z nich) do testowanego zasobu. W rezultacie system pokaże średni czas przetwarzania żądań, całkowitą ilość przesyłanych danych, przepustowość i liczbę błędów.

Dziś wokół narzędzia skupiona jest szeroka społeczność. W sieci regularnie pojawiają się świeże przewodniki jak skonfigurować i używać ApacheBench.

Warto zauważyć, że AB ma odpowiednik — Apache jMeter, ale z większymi możliwościami. Na przykład pozwala generować zapytania z kilku komputerów, zarządzając procesem z jednego z nich. Program zawiera także mechanizmy autoryzacji wirtualnych użytkowników oraz obsługuje sesje użytkowników. Ten instrument jest stosowany przez wiele firm IT, w tym dostawców chmurowych, takich jak Qualys.

Jak przetestować wydajność serwerów: zbiór kilku open source benchmarkówW 1cloud oferujemy usługę „Chmura prywatna”. To jest wynajem wirtualnej infrastruktury z możliwością szybkiej personalizacji zasobów. serwerów wirtualnych.
Jak przetestować wydajność serwerów: zbiór kilku open source benchmarkówNasza chmura jest zbudowana na sprzęcie Cisco, Dell, NetApp. Sprzęt znajduje się w kilku centrach danych: DataSpace (Moskwa), SDN/Xelent (Sankt Petersburg), Ahost (Ałmaty).

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster