Skip to content
Tenvo AI · NA ŻYWO · v0.16.2 · TLS · Certyfikaty przypisane do urządzeń · AGPL-3.0 · BEZPŁATNY PLAN · 30 URZĄDZEŃ · INFRASTRUKTURA DO SAMODZIELNEGO HOSTOWANIA · WŁASNY KLUCZ API · MCP DLA CLAUDE & CURSOR
Powrót do blogaTutorial

Test opóźnienia pulpitu zdalnego — jak mierzyć UX

Tenvo Editorial Team9 min czytania
Test opóźnienia pulpitu zdalnego — jak mierzyć UX

Potrzebujesz, aby zdalne sterowanie było responsywne — a nie zacięte i nieprzewidywalne. Jeśli przeciąganie okna, pisanie lub przesuwanie myszy w sesji zdalnej wydaje się ociężałe, rozwiązujesz opóźnienia.

Sterowanie zdalne powinno być responsywne — nie opóźnione i nieprzewidywalne. Jeśli przeciąganie okna, pisanie lub poruszanie myszą w sesji zdalnej wydaje się ospałe, rozwiązujesz problem z opóźnieniem (latencją). Ten poradnik pokazuje, jak przeprowadzić praktyczny „remote desktop latency test”, który oddziela problemy sieciowe od problemów z kodowaniem/renderowaniem i dostarcza powtarzalnych pomiarów, które można porównywać w czasie.

Dlaczego mierzyć opóźnienie (i czego się spodziewać)

Opóźnienie w sesjach pulpitu zdalnego ma wiele wymiarów. Są to surowy czas podróży sieci (RTT), jitter i utrata pakietów, opóźnienie enkodera/dekodera po stronie hosta i klienta oraz opóźnienia związane z przetwarzaniem wyświetlania/wejścia na każdej maszynie. Wszystko to składa się na opóźnienie, które odczuwa użytkownik przy klikaniu lub przeciąganiu.

Praktyczne progi, których możesz użyć jako wytycznych:

  • < 20 ms RTT: w większości przypadków niedostrzegalne (doskonałe do pracy interaktywnej).
  • 20–60 ms RTT: bardzo użyteczne do większości prac zdalnych (minimalne opóźnienie przy szybkich ruchach wskaźnika).
  • 60–150 ms RTT: akceptowalne, ale zauważalne; niektóre zadania (rysowanie, granie) będą ucierpieć.
  • > 150–200 ms RTT: wyraźnie odczuwalne, nieodpowiednie do precyzyjnej pracy z interfejsem.

Są to przybliżone zakresy — rzeczywiste odczuwane opóźnienie zależy od pipeline'u kodowania używanego przez oprogramowanie zdalne. Rozwiązania komercyjne (TeamViewer, AnyDesk) często używają niestandardowych kodeków i predykcji, by zmniejszyć odczuwalny lag; oprogramowanie open-source/samo-hostowane (Tenvo, RustDesk) może zachowywać się inaczej w zależności od konfiguracji. Jeśli chcesz konfigurację samo-hostowaną, zobacz nasz przewodnik self-hosted remote desktop guide dotyczący wdrożenia.

Przegląd: dwa uzupełniające się testy do wykonania

Wykonaj te dwa testy po kolei. Izolują one opóźnienie sieciowe od opóźnienia end-to-end postrzeganego przez użytkownika.

  1. Testy na poziomie sieci: ping, traceroute/MTR oraz iperf3 do pomiaru przepustowości/jittera/utraty pakietów.
  2. End-to-end: pomiar od wejścia do wyświetlenia — metoda wizualna z migającym kwadratem i kamerą o wysokiej liczbie klatek lub zramkowanymi znacznikami czasu.

Krok 1 — testy sieciowe (szybkie, obiektywne)

Rozpocznij od zmierzenia ścieżki sieciowej między klientem a hostem. To nie powie ci wszystkiego, ale szybko wykluczy oczywiste problemy sieciowe.

Narzędzia, których będziesz potrzebować

  • ping (wbudowany w Windows/macOS/Linux)
  • traceroute lub MTR (mtr na Linux/macOS; WinMTR na Windows)
  • iperf3 (zainstaluj przez menedżer pakietów; powszechnie używany do pomiaru przepustowości, jittera i utraty pakietów)

Podstawowe polecenia i oczekiwane wartości

Zastąp host.example.com lub 198.51.100.10 adresem IP/nazwą swojego zdalnego hosta.

ping -c 20 host.example.com
# On Windows: ping -n 20 host.example.com

Sprawdź min/avg/max RTT i utratę pakietów. W tej samej sieci LAN powinieneś widzieć <1 ms min/avg; przez domowe łącze do serwera regionalnego typowo 10–40 ms; połączenia transkontynentalne często mieszczą się w 80–200 ms.

mtr -c 100 host.example.com
# Windows: use WinMTR with default 100 cycles

MTR daje szczegółową informację o utracie pakietów na poszczególnych hopach, co jest przydatne do wykrywania zatłoczonego łącza lub problemu u ISP.

Pomiary jittera i utraty pakietów z iperf3 (UDP)

Uruchom serwer iperf3 na hoście:

iperf3 -s

Z klienta uruchom test UDP dostosowany do przepustowości, jakiej oczekujesz dla sesji zdalnej. Typowe strumienie pulpitu zdalnego to 1–10 Mbps w zależności od rozdzielczości i liczby klatek; wybierz 5M jako realistyczny test:

iperf3 -c host.example.com -u -b 5M -t 30

iperf3 poda utratę pakietów i jitter. Jeśli widzisz >1% utraty pakietów lub jitter powyżej ~10 ms, wpłynie to znacząco na niektóre kodeki pulpitu zdalnego.

Symulowanie złych warunków sieciowych

Jeśli chcesz przetestować zachowanie oprogramowania zdalnego przy opóźnieniach, jitterze lub utracie pakietów, użyj Linux netem, aby dodać zakłócenia na kliencie lub hoście:

sudo tc qdisc add dev eth0 root netem delay 100ms 20ms loss 1%

To polecenie dodaje 100 ms opóźnienia z odchyleniem standardowym 20 ms oraz 1% utraty pakietów. Aby usunąć reguły:

sudo tc qdisc del dev eth0 root netem

Krok 2 — opóźnienie od wejścia do wyświetlenia (opóźnienie postrzegane przez użytkownika)

Parametry sieciowe nie zawsze odpowiadają odczuwanemu opóźnieniu. Stos programowy, który buforuje klatki, używa wolnego enkodera programowego lub czeka na V-sync, może dodać dziesiątki lub setki milisekund. Użyj tej metody, by zmierzyć rzeczywiste opóźnienie od wejścia do wyświetlenia w sposób, który można benchmarkować.

Metoda A — metoda z kamerą o wysokiej liczbie klatek (najbardziej wiarygodna, wymaga sprzętu)

Przegląd: uruchom na hoście prostą stronę, która przełącza widoczny kwadrat po naciśnięciu klawisza; połącz się klientem zdalnym, a następnie ustaw kamerę 120–240 fps (lub smartfon w trybie wysokiej liczby klatek), tak aby nagrała jednocześnie ekran hosta i okno klienta. Zlicz klatki między zmianą na hoście a zmianą na kliencie.

Kroki:

  1. Na hoście otwórz prostą stronę, która zmienia kolor dużego kwadratu na ekranie za każdym razem, gdy naciśniesz spację. Wklej poniższy HTML do pliku lokalnego:
<!doctype html>
<html>
<meta charset="utf-8">
<title>Latency Blink Test</title>
<style>body{margin:0;background:#222;color:#fff;font-family:sans-serif}#s{width:300px;height:300px;margin:50px auto;background:#fff}</style>
<script>document.addEventListener('keydown',e =>{if(e.code==='Space'){let s=document.getElementById('s');s.style.background=(s.style.background==='#fff'?'#0f0':'#fff');}});</script>
<body><div id="s"></div>
<p>Press SPACE to toggle the square</p>
</body>
</html>
  1. Rozpocznij sesję zdalną i ustaw fizyczny monitor hosta oraz okno klienta w polu widzenia kamery tak, aby obie powierzchnie były widoczne jednocześnie (dlatego potrzebne jest szerokie pole widzenia lub umieszczenie monitorów obok siebie).
  2. Nagraj w wysokiej liczbie klatek (120 fps jest w porządku; 240 fps lepiej). Naciśnij SPACJĘ i obserwuj klatki. Później przejdź przez nagranie klatka po klatce i policz, ile klatek upływa między zmianą kwadratu na hoście a zmianą na kliencie. Latencja = liczba_klatek / camera_fps.

Przykład: jeśli policzyłeś 6 klatek przy 120 fps, latencja ≈ 6 / 120 = 0,05 s (50 ms).

Metoda B — znaczniki czasowe w oprogramowaniu (bez kamery, mniej precyzyjna)

Jeśli możesz uruchomić kod zarówno na hoście, jak i na kliencie z zsynchronizowanymi zegarami (synchronizacja NTP wystarcza do ~10 ms wyrównania), możesz znacznikować zdarzenie na hoście, a klient może zgłosić czas, w którym wyświetlił zdarzenie. Wymaga to modyfikacji klienta zdalnego lub nakładki testowej, więc jest to podejście bardziej zaawansowane.

Plusy/minusy: metoda z kamerą mierzy cały pipeline, włącznie z trwałością monitora i błędami timingowymi kamery, ale jest prosta. Znacznikowanie można zautomatyzować, lecz wymaga precyzyjnej synchronizacji zegarów (użyj chrony lub pool.ntp.org) oraz sposobu wykrycia aktualizacji klatki po stronie klienta.

Izolowanie źródła opóźnienia

Gdy masz pomiary, rozłóż problem na części:

  • Jeśli ping/iperf pokazują niskie RTT/jitter, a pomiar end-to-end nadal jest wysoki, sprawdź kodowanie/dekodowanie lub renderowanie po stronie klienta. Monitoruj CPU/GPU na hoście i kliencie (Task Manager / top / nvidia-smi). Wysokie użycie CPU lub kolejki enkodera powodują lag.
  • Jeśli iperf wskazuje znaczącą utratę pakietów lub jitter, napraw sieć. Utrata pakietów często powoduje zatrzymania kodeków lub ponowne żądania klatek.
  • Jeśli problemem jest przepustowość (np. wideo zdalne stale używa więcej pasma niż pozwala łącze), zmniejsz bitrate lub rozdzielczość i przetestuj ponownie.
  • Sprawdź ustawienia oprogramowania zdalnego: głębia kolorów, limit liczby klatek, przyspieszenie sprzętowe (włącz NVENC lub VA-API tam, gdzie dostępne).

Monitorowanie zasobów hosta/klienta

Typowe kontrole:

  • Windows: Task Manager > Performance and GPU tabs. Sprawdź, czy enkoder używa sprzętowego H.264/HEVC.
  • Linux: top/htop dla CPU; nvidia-smi do sprawdzenia wykorzystania enkodera GPU; iostat w celu wykrycia opóźnień dyskowych.
  • macOS: Activity Monitor i sprawdzenie wykorzystania GPU/enkodera, jeśli jest obsługiwane.

Porównywanie różnych programów zdalnych i konfiguracji

Przy benchmarkach zachowaj spójność testu: ta sama maszyna hosta, ten sam klient, te same warunki sieciowe, ta sama rozdzielczość ekranu. Testuj każdą wersję klienta i każdy tryb protokołu (połączenie bezpośrednie P2P vs serwer przekaźnikowy). Kilka rzeczy do przetestowania:

  • Połączenie przewodowe LAN vs Wi‑Fi vs VPN — przewodowe zawsze będzie miało najniższą latencję.
  • Połączenie bezpośrednie vs przekaźnik: przekaźniki mogą dodać 20–100 ms w zależności od lokalizacji.
  • Włączone kodowanie sprzętowe vs kodowanie programowe.

Szczera uwaga: dostawcy tacy jak AnyDesk i TeamViewer często optymalizują kodeki pod kątem odczuwanej interaktywności i mogą osiągać lepsze wyniki niż standardowe RDP/VNC w scenariuszach o wysokiej latencji lub niskiej przepustowości. Jeśli porównujesz, uruchom te same testy na każdym z nich. Szczegółowe porównania omówiliśmy w AnyDesk vs TeamViewer 2026: funkcje i ceny oraz w naszym poście Zdalny pulpit bez przekierowania portów: wyjaśnienie, jeśli testujesz tryby przekaźnikowe vs bezpośrednie.

Praktyczny plan benchmarku i punktacja

Uruchom ten plan, aby uzyskać powtarzalne, porównywalne wyniki:

  1. Baseline: test LAN przewodowy — zanotuj ping, iperf3 (5M) oraz test migania kamerą.
  2. Domowe łącze: klient na Wi‑Fi, host przewodowo — uruchom te same testy.
  3. Zdalnie przez internet: klient w domu, host w centrum danych (lub w pracy) — uruchom testy i zanotuj regiony serwerów przekaźnikowych, jeśli są używane.
  4. Test obciążeniowy: użyj netem, aby dodać 100 ms opóźnienia + 2% utraty i uruchom testy ponownie, aby zobaczyć, jak oprogramowanie zachowuje się przy pogorszeniu warunków.

Oceń każdy przebieg w trzech osiach (0–10): kondycja sieci (na podstawie iperf/ping), kondycja enkodera (użycie CPU/GPU i utracone klatki) oraz odczuwalna interaktywność (latencja z testu kamerą). Połącz je w jedną ocenę, jeśli potrzebujesz szybkiego rankingu.

Wskazówki i szybkie poprawki, aby zmniejszyć opóźnienie

  • Preferuj przewodowy Ethernet zamiast Wi‑Fi. Wi‑Fi dodaje zmienne opóźnienie i jitter.
  • Włącz kodowanie sprzętowe na hoście (NVENC/QuickSync/VA-API) oraz dekodowanie sprzętowe na kliencie, jeśli jest dostępne.
  • Obniż rozdzielczość lub liczbę klatek. 720p@30 często daje lepsze wrażenie interakcji niż 1080p@60 przy ograniczonym łączu.
  • Używaj połączeń bezpośrednich P2P tam, gdzie to możliwe — przekaźniki dodają opóźnienie.
  • Zamknij niepotrzebne aplikacje obciążające CPU/GPU na hoście i kliencie, aby uniknąć kolejkowania enkodera.
  • Jeśli masz kontrolę nad urządzeniami sieciowymi, priorytetyzuj ruch pulpitu zdalnego za pomocą QoS dla krytycznych sesji.

Dokumentowanie wyników i benchmarków

Zapisz metadane testu: nazwa i wersja oprogramowania (np. Tenvo v0.9.x, AnyDesk 7.x, TeamViewer 15.x), wersje systemów operacyjnych, sprzęt klienta i hosta, typ sieci, wynik iperf3 oraz liczba klatek kamery. Przechowuj surowe wideo z kamery i policzone klatki, aby móc odtworzyć pomiar później. To szczególnie przydatne przy ocenie zmian typu aktualizacje sterowników lub ustawienia kodeków.

Dla użytkowników Tenvo: nasza strona pobrań pod /download zawiera bieżące buildy; jeśli testujesz Tenvo, dołącz dokładny build/commit. Jeśli planujesz samo-hosting, nasz Samodzielne hostowanie pulpitu zdalnego poradnik 2026 wyjaśnia szczegóły wdrożenia serwera, które wpływają na tryb połączenia i opóźnienie.

Podsumowanie

Dobry „remote desktop latency test” łączy obiektywne pomiary sieciowe z testem end-to-end widocznym dla użytkownika. Narzędzia sieciowe (ping, traceroute/MTR, iperf3) szybko identyfikują problemy z łącznością; test migania kamerą mierzy rzeczywisty czas od wejścia do wyświetlenia odczuwany przez użytkownika. Użyj netem, aby odtworzyć warunki problemowe, i monitoruj zasoby hosta/klienta, aby znaleźć wąskie gardła enkodera.

Jeśli chcesz bazę powtarzalną między różnymi dostawcami oprogramowania, zautomatyzuj testy sieciowe skryptami i zachowaj krótki zapis wideo z testów migania. Porównując kilka przebiegów zobaczysz, jaka część opóźnienia to sieć, a jaka to pipeline oprogramowania — i to wskaże właściwe rozwiązanie.

Jeśli testujesz opcje samo-hostowane vs relaye hostowane, nasz artykuł Zdalny pulpit bez przekierowania portów: wyjaśnienie omawia w większym szczególe kompromisy związane z przekaźnikami. Dla porównań dostawców (zachowanie kodeków i kompromisy cenowe) zobacz AnyDesk vs TeamViewer 2026: funkcje i ceny.

Gotowy, by uruchomić testy na kliencie open-source, który możesz self-hostować i modyfikować? Pobierz Tenvo na /download i postępuj zgodnie z notatkami wdrożeniowymi w naszym Samodzielne hostowanie pulpitu zdalnego poradnik 2026. Jeśli potrzebujesz pomocy w interpretacji wyników benchmarku, wklej wynik iperf3 i swoje pomiary z kamery, a przeanalizujemy prawdopodobne wąskie gardła.

Pobierz Tenvo

Gotowy sprawdzić samodzielnie?

Bezpłatne dla 30 urządzeń, bez karty kredytowej. Uruchomienie i połączenie w dwie minuty.