Router lub laptop bez zapasu CPU? Dlaczego prędkość VPN urywa się za wcześnie
Routerowi lub laptopowi może zabraknąć mocy obliczeniowej, zanim łącze się zapełni. Obserwuj obciążenie poszczególnych rdzeni podczas kontrolowanego transferu, a potem sprawdź odciążenie, zanim kogoś obwinisz.
Router reklamuje szybkie Wi-Fi, a potem ledwo radzi sobie z szyfrowaniem ruchu trzech urządzeń naraz. Laptop osiąga limit przetwarzania, choć w łączu dostępowym wciąż jest miejsce. Zwykle najpierw obwinia się serwer i zwykle jest on niewinny. Limit tkwi na maszynie, która wykonuje pracę tunelu, a jego znalezienie oznacza obserwację tej maszyny, a nie testu prędkości.
Objaw wskazuje jedną maszynę, a nie internet
To, gdzie działa tunel, decyduje, który procesor za niego płaci. Jeśli kończy go router, każdy objęty klient dzieli budżet tego routera. Jeśli klienta uruchamia laptop, płaci laptop, a nie router. Tunele na obu końcach tworzą dwa obciążenia i każde z nich może stać się limitem innego dnia. Nazwanie maszyny to pierwszy krok, i właśnie ten krok ludzie pomijają, otwierając zgłoszenie do dostawcy.
Policz urządzenia między aplikacją a odległym końcem i zaznacz to, które szyfruje. Wszystko inne jest tylko nośnikiem bajtów, których nie potrafi odczytać.
Obserwuj obciążenie poszczególnych rdzeni podczas transferu
Ogólny procent CPU to niewłaściwe narzędzie, ponieważ szyfrowanie często przypina jeden rdzeń, podczas gdy reszta stoi bezczynnie. Patrz na wartości poszczególnych rdzeni podczas kontrolowanego transferu i wypatruj rdzenia blisko nasycenia. Umiarkowana średnia z jednym zajętym wątkiem to mocny sygnał, a wysoka średnia bez zajętego wątku zwykle oznacza niezwiązany program. Wzorzec liczy się bardziej niż liczba.
mpstat -P ALL 1 5
top -H -b -n 1 | head -20
lscpu | grep -i -E "model name|aes"
Trzecie polecenie mówi, czy procesor udostępnia instrukcje AES, co mocno zmienia koszt tego samego szyfru. Nie mówi, czy implementacja VPN ich używa, i właśnie w tej luce między dwoma faktami powstaje większość twierdzeń o optymalizacji.
Oddziel szyfrowanie od obsługi pakietów
Szyfrowanie to jeden koszt pośród kilku. Kopiowanie pakietów między jądrem a przestrzenią użytkownika, wyszukiwania tras, reguły zapory i obsługa interfejsów też się dokładają, a niektóre implementacje płacą więcej za kopiowanie niż za kryptografię. Zauważ, który licznik rośnie wraz z transferem, zamiast ufać nazwie procesu, że wyjaśni każdy cykl. Tunel w przestrzeni użytkownika i tunel w jądrze mogą pokazać zupełnie różne profile dla tego samego ruchu.
Jeśli jeden rdzeń jest zajęty wewnątrz jądra, rozwiązanie różni się od zajętego wątku przestrzeni użytkownika, a profil mówi, który masz. Ta różnica jest warta godziny przed zakupem sprzętu.
Porównuj podobne z podobnym, zanim wyciągniesz wniosek
Porównanie jest przydatne tylko wtedy, gdy zadanie, sieć dostępowa i punkt końcowy pozostają takie same. Zmień serwer, a wynik obejmie trasę i przepustowość tego serwera; zmień sieć, a obejmie operatora. Użyj tego samego pliku, tego samego celu i tej samej godziny, i wstrzymaj własną pracę w tle. Jeśli musisz zmienić urządzenie, zmień tylko urządzenie.
Zasilanie i ciepło zmieniają wydajność trwałą, więc krótki przebieg na zimnej maszynie to nie to samo pomiar co długi transfer na ciepłej. Porównuj podobne warunki zasilania i zapisuj je, bo limit termiczny wygląda na wykresie dokładnie jak limit przetwarzania.
Używaj wspieranego odciążenia i sprawdź, czy naprawdę się włączyło
Niektóre implementacje potrafią przenieść część ścieżki danych do jądra lub do sprzętu, a dostępność zależy od klienta, systemu operacyjnego, serwera i konfiguracji. Przeczytaj dokumentację wersji, którą uruchamiasz, i użyj jej własnego wyjścia stanu lub logów, aby potwierdzić, że funkcja jest aktywna. Zainstalowany pakiet ani zaznaczone pole nie są dowodem. Podręcznik OpenVPN dokumentuje opcje kanału danych dla własnych wydań, a te opcje różnią się między wersjami.
Gdy wspierana zmiana przesuwa sufit, uruchom ponownie zarówno zadanie aplikacji, jak i transfer masowy, i zachowaj poprzedni profil, aby móc wrócić. Przepustowość masowa, która się podwaja, podczas gdy aplikacja pozostaje wolna, przesunęła wąskie gardło, a nie je usunęła.
Jeśli obserwacje procesora nie idą za objawem, wróć na stronę sieci. Powtórzenia Wi-Fi, kolejkowanie i ścieżka wyjścia dają ten sam wynik bez żadnego udziału CPU.