Router z plakietką Wi-Fi 3,000 Mbps wciąż może przenosić zaszyfrowany ruch z ułamkiem tej liczby, i żadna z tych liczb nie jest nieuczciwa. Ocena radiowa opisuje najlepszą możliwą modulację łącza bezprzewodowego, którą obsługuje chipset; liczba VPN opisuje, jak szybko jedno urządzenie może przepchnąć zaszyfrowane pakiety przez procesor routera i poza twoją linię dostępową. To różne warstwy, różne rozmiary pakietów i różne metody pomiaru. Traktuj liczbę na pudełku jako sufit, którego nikt nie osiąga, a nie prognozę prędkości twojego tunelu.

Krok 1: Zmapuj cztery warstwy, które ograniczają tę liczbę

Prawie każde zgłoszenie wolnego routera, z którym pracowałem, trafia do jednego z czterech poziomów: łącza bezprzewodowego, szybkości dostępu WAN, ścieżki przekazywania (NAT, zapora, śledzenie połączeń) albo ścieżki kryptograficznej VPN. Nakładają się, a najwolniejszy poziom wyznacza wynik. Reklamowana prędkość Wi-Fi mówi tylko o pierwszym poziomie i mówi o nim hojnie.

Ta liczba bierze się ze strumieni pomnożonych przez szerokość kanału i najwyższą modulację, jaką chipset może wynegocjować. Radio 2x2 na 5 GHz przy 80 MHz z 1024-QAM reklamowane jest blisko 1,200 Mbps, ale Wi-Fi to współdzielone medium półdupleksowe: klienci się zmieniają, retransmisje i ruch zarządzający palą czas antenowy, a TCP dokłada własny narzut. Klient, który wynegocjuje najwyższą prędkość w idealnych warunkach, zwykle mierzy znacznie poniżej połowy, a mniej, gdy pojawią się sąsiednie sieci.

SymptomTier to suspect first
Wired clients are slow tooWAN access or forwarding path
Only Wi-Fi clients are slowRadio, airtime, or channel width
One stream is slow, four parallel streams add upPer-connection CPU path, not the link
Every stream is slow and one core sits at 100%Crypto path
Fast to LAN hosts, slow to the internetWAN, not the tunnel

Jeśli tabela wskazuje radio, najpierw napraw stronę bezprzewodową: pasmo, szerokość kanału, odległość. Jeśli wskazuje poniżej radia, liczą się kolejne cztery kroki, i żaden zakup anten tego nie zmieni.

Krok 2: Zmierz przewodową linię bazową, zanim dotkniesz radia

Podłącz laptop do Ethernetu i najpierw zmierz ścieżkę bez tunelu, bo to daje mianownik. Uruchom narzędzie przepustowości po drugiej stronie, na VPS-ie albo serwerze domowym, który zakańcza VPN, i skieruj klienta na jego adres publiczny, aby ruch przechodził przez twój router i linię dostępową.

# on the far host (VPN endpoint)
iperf3 -s

# wired client, direct to the endpoint's public address
iperf3 -c 203.0.113.10 -t 30

# same client, four parallel streams
iperf3 -c 203.0.113.10 -t 30 -P 4

Dwie liczby z tego bloku odpowiadają na różne pytania. Jeden strumień pokazuje sufit na połączenie, z zachowaniem okna TCP i dowolnym kształtowaniem na przepływ w ścieżce. Cztery strumienie pokazują, czy łącze ma niewykorzystaną pojemność, bo strumienie równoległe mogą wypełnić rurę, której jeden strumień nie wypełni.

Zachowaj uczciwość: ten sam host, pora dnia i czas trwania, i nic innego nie streamuje w domu. Trzydziestosekundowe przesyłanie masowe to właściwa jednostka, a RFC 6349, ramy testowania przepustowości TCP, opierają się dokładnie na tym rozumowaniu, bo krótkie serie i małe żądania schlebiają łączu. Zapisz linię bazową, zanim cokolwiek zmienisz.

Krok 3: Uruchom ten sam test przez tunel

Teraz powtórz go wobec adresu tunelu punktu końcowego, z tym samym klientem, czasem i liczbą strumieni, przy włączonym tunelu i bez innego ruchu. Stosunek obu wyników mówi, ile kosztuje szyfrowanie i enkapsulacja na tym sprzęcie; liczba bezwzględna mówi, czy to wystarczy do zadania.

Obserwuj liczniki podczas przesyłania. W WireGuardzie wg show raportuje przesłane bajty na partnera; w OpenVPN plik stanu zapisywany co interwał daje ten sam widok.

watch -n 1 'wg show wg0 transfer'
# OpenVPN: add --status /run/openvpn/server.status 10 to the server config
tail -f /run/openvpn/server.status

Jeśli liczba tunelu jest blisko przewodowej linii bazowej, VPN nie jest wąskim gardłem i możesz przestać go winić. Jeśli to ułamek linii bazowej, strata powstała wewnątrz ścieżki szyfrowania i przekazywania routera, a następny krok mówi, w której części.

Jedno ostrzeżenie: gdy zmieni się wyjściowy IP, niektóre serwisy testów prędkości po cichu wybierają inny serwer pomiarowy, więc ostatecznie porównujesz dwa różne cele. Sam przypnij adres serwera.

Krok 4: Czytaj procesor jako ścieżkę, nie jako średnią

Router pokazujący 30 procent całkowitego procesora wciąż może być nasycony: praca jednego tunelu zwykle ląduje na jednym rdzeniu, jednej kolejce przerwań albo jednym wątku jądra, więc średnia ukrywa sufit. Patrz na liczby na rdzeń i softirq zamiast na wskaźnik w panelu.

mpstat -P ALL 1
top -H -p $(pgrep -f 'openvpn')
grep -o -m1 aes /proc/cpuinfo

W tym wyniku znaczenie mają trzy rzeczy. Jeden rdzeń przypięty blisko 100 procent, gdy pozostałe stoją bezczynnie, wskazuje limit na połączenie. Duży %soft albo zajęty ksoftirqd na jednym procesorze wskazuje przetwarzanie pakietów po stronie odbioru, które nie rozkłada się na kolejki. A brak flagi aes oznacza, że procesor nie ma instrukcji AES, więc szyfrowanie symetryczne działa w oprogramowaniu i kosztuje znacznie więcej na pakiet.

Implementacja też ma znaczenie. Tradycyjna instancja OpenVPN w przestrzeni użytkownika przetwarza pakiety jednego tunelu w dużej mierze w jednym miejscu, więc szybkie wielordzeniowe pudło może zachowywać się jak jednordzeniowe dla tego tunelu. WireGuard w jądrze rozkłada pracę na procesory, a odciążenie kanału danych OpenVPN również przenosi obsługę pakietów do jądra, ale tylko w kompilacjach i na platformach, które to obsługują. Twierdzenie o przyspieszeniu sprzętowym na stronie marketingowej nie jest dowodem, że ścieżka kodu, którą uruchamiasz, z niego korzysta.

Krok 5: Zdecyduj, co zmienić, właśnie w tej kolejności

Przejdź listę w dół i zatrzymaj się na pierwszym prawdziwym wierszu, bo zmiana czegokolwiek poniżej nie ruszy liczby.

1. Przewodowa przepustowość bezpośrednia jest niższa niż to, za co płacisz: porozmawiaj z dostawcą, bo tunel nie może stworzyć pojemności, której linia dostępowa nie daje. 2. Po kablu bezpośrednio jest dobrze, ale jeden rdzeń przypina się podczas testu tunelu: ścieżka kryptograficzna routera jest granicą. 3. Procesor stoi bezczynnie, ale tunel jest wolny: sprawdź MTU i fragmentację, potem własną pojemność odległego punktu końcowego. 4. Wolni są tylko klienci Wi-Fi: zmień pasmo albo szerokość kanału i przyjmij, że reklamowana prędkość nigdy nie była liczbą VPN.

Gdy router naprawdę jest granicą, uczciwe opcje to urządzenie z instrukcjami AES i szybszą ścieżką przekazywania, tunel po stronie jądra, jak WireGuard, zamiast tego w przestrzeni użytkownika, albo przeniesienie klienta na samo urządzenie, aby router przestał szyfrować. Wyłączenie szyfrowania z uwierzytelnianiem, aby wygrać test porównawczy, nie jest jedną z nich; zamienia właściwość bezpieczeństwa na liczbę, która i tak nie będzie pasować do pudełka.

Zanim cokolwiek kupisz, uruchom ponownie kroki 2 i 3 na nowym urządzeniu z tym samym serwerem i czasem, a potem porównuj stosunki, a nie szczyty.

Powiązane artykuły