Dwa serwery o tej samej liczbie procesorów mogą utrzymać bardzo różną przepustowość, ponieważ liczbą, która się liczy, jest to, ile rdzeni aktywna ścieżka danych może faktycznie wykorzystać. Pojedynczy demon w przestrzeni użytkownika przetwarzający pakiety jednego klienta jest ograniczony do jednego rdzenia, podczas gdy odciążona ścieżka jądra może rozłożyć tę pracę. Żadne z tych stwierdzeń nie mówi, co dana maszyna zrobi z Twoim ruchem, dlatego pomiar poprzedza liczenie rdzeni.

Poniższe porównanie dotyczy tego, gdzie przetwarzane są pakiety, a nie tego, który produkt jest szybszy w abstrakcji. To różne pytania z różnymi odpowiedziami.

Jeden rdzeń na strumień na ścieżce w przestrzeni użytkownika

W tradycyjnej instancji Community OpenVPN kanał danych jest przetwarzany w przestrzeni użytkownika, a zajęte połączenie może przypiąć jeden procesor, podczas gdy ogólne wykorzystanie maszyny pozostaje niepozorne. Dlatego dodanie rdzeni do hosta, który jest już nasycony na jednym strumieniu, niczego nie zmienia: planista nie ma sposobu podzielić tej pracy. Struktura jednego procesu na klienta ogranicza transfer jednego klienta do wydajności jednego rdzenia, niezależnie od łącznej liczby rdzeni. Podczas testu czytaj wykorzystanie poszczególnych rdzeni zamiast liczby zbiorczej, inaczej wąskie gardło będzie wyglądać jak wolny zapas.

Uruchamianie kilku instancji serwera na jednym hoście rozdziela osobnych klientów między procesy. Nie zrównolegla to istniejącego połączenia i kosztuje osobne pule, nasłuchy oraz decyzje routingu.

Druga ścieżka: pakiety w jądrze

Odciążenie kanału danych przenosi obsługiwane przetwarzanie pakietów i kryptografię do jądra, gdzie praca może wykorzystać kilka rdzeni. To zmienia pytanie o wydajność z jednego rdzenia na maszynę, ale tylko dla konfiguracji, które implementacja obsługuje: zgodny moduł jądra, odpowiedni szyfr danych i konfiguracja bez funkcji, które odciążenie wyklucza. Zainstalowanie modułu nie jest tym samym co jego użycie, więc potwierdź aktywny tryb z logu samego połączenia lub z wyjścia stanu. Baner wersji dowodzi, co jest dostępne, a nie co działa.

Odciążenie nie usuwa uwierzytelniania ani kanału kontrolnego i nie czyni każdego wdrożenia wielordzeniowym. To lokalne przyspieszenie zgodnej ścieżki danych, a wymagania różnią się w zależności od platformy i wersji.

Co porównanie faktycznie rozstrzyga

Prawdziwy wybór jest między zaakceptowaniem pułapu na strumień, rozłożeniem klientów na instancje a przejściem na obsługiwaną konfigurację odciążenia. Każde z nich rozwiązuje inny problem, a wybór złego kosztuje pieniądze bez ruszania liczby. Test, który się liczy, to ten ukształtowany jak sposób korzystania z usługi.

Zmierz trzy kształty: jeden klient z jednym transferem, jeden klient z kilkoma strumieniami i kilku klientów razem. Wysoka suma w trzecim nie dowodzi, że pojedyncze pobieranie może ją osiągnąć, a wolny pojedynczy transfer nie dowodzi, że serwer wyczerpał całkowitą wydajność. Wyniki odpowiadają na różne pytania i oba warto mieć.

Tylko środkowy kształt mówi, czy współbieżność wewnątrz jednego klienta pomaga, co zwykle jest cechą transportu i ścieżki, a nie serwera. Tylko pierwszy mówi pułap, który zobaczy jedna aplikacja. Utrzymuj identyczne obciążenie między przebiegami, aby porównanie coś znaczyło.

Mierzyć tak, aby liczba coś znaczyła

Zapisz wersje serwera i klienta, aktywną ścieżkę danych, wynegocjowany szyfr danych, kierunek transferu, rozmiary pakietów, liczbę strumieni i czas trwania. Obserwuj aktywność poszczególnych rdzeni oraz straty pakietów i kolejek na obu końcach, ponieważ interfejs samego klienta, sieć dostawcy lub usługa docelowa mogą stać się granicą pierwsze. Zmieniaj jedną zmienną naraz, bo przebieg, który zmienia szyfr, kompresję, MTU i odciążenie jednocześnie, nie powie Ci, która miała znaczenie. Podczas testu zachowaj politykę dostępu, którą naprawdę zamierzasz wdrożyć, bo układ laboratoryjny, którego nikt nie uruchomi, dowodzi niewiele.

Potem zostaw zapas dla kanału kontrolnego, dla renegocjacji i dla wszystkiego innego, co działa na hoście.

Raportuj, co konfiguracja utrzymała przy zamierzonej współbieżności, a nie szybkość ekstrapolowaną z cudzego sprzętu. Liczba z dołączonymi warunkami testu jest użyteczna; obietnica bez nich to domysł, który zostanie Ci później przytoczony.

Powiązane artykuły