x11vnc działa wolno, ale zużywa tylko 10% dostępnej przepustowości

11

Używam x11vnc w sieci 15 Mb / s z opóźnieniem 20 ms. Gdy ekran się bardzo zmienia, x11vnc działa powoli - na przykład, kiedy zmieniam zakładkę w przeglądarce, prawie dwie sekundy zajmuje pełne odświeżenie widoku.

Dziwne jest to, że maksymalna prędkość połączenia x11vnc wynosi nawet podczas powolnego przerysowywania tylko około 10% dostępnej przepustowości. Dlaczego x11vnc nie wykorzystuje dostępnej przepustowości do przyspieszenia przerysowywania? Na przykład scp wykorzystuje 100% dostępnej przepustowości bez problemów.

Jak mogę zidentyfikować wąskie gardło dla x11vnc w moim systemie? Jak dotąd myślę:

  1. 10% wykorzystania sieci => sieć nie stanowi wąskiego gardła
  2. szybkość odczytu fb: 601 MB / s => odczyt fb nie stanowi wąskiego gardła

Wszelkie pomysły, w jaki sposób mogę dalej profilować x11vnc i dowiedzieć się, co powoduje spowolnienie?

Na przykład, czy jest jakiś przełącznik dla x11vnc, który pokazuje, ile danych obsługuje i ile czasu zajmuje pobranie ekranu, przetworzenie i skompresowanie go i przesłanie przez sieć?

mmm
źródło

Odpowiedzi:

11

Aby odpowiedzieć na moje pytanie:

Przejście z kodowania ścisłego na kodowanie szesnastkowe rozwiązało problem całkowicie powolnego przerysowywania.

Aby dodać trochę szczegółów: Zauważyłem, że podczas powolnego przerysowywania ekranu procesor na kliencie gwałtownie przyspieszył do 100% wykorzystania. Używałem ścisłego kodowania, a na stronie VNC Tight Encoder - wyniki porównania można zauważyć, że ścisłe kodowanie wymaga dość dużej mocy obliczeniowej w porównaniu do kodowania szesnastkowego. Po przejściu na hextile maksymalne użycie procesora nigdy nie wynosi 100%, wykorzystywana jest prawie cała dostępna przepustowość, a przerysowanie zawsze zajmuje mniej niż sekundę. Więc procesor klienta był wąskim gardłem.


Lub jeszcze lepszą alternatywą (mniejsze pasmo, niskie użycie procesora i wydaje się nawet szybszy niż hextile) jest kompilacja x11vnc z obsługą TurboVNC, a następnie użycie klienta TurboVNC .

mmm
źródło
Oto kilka porównań przepustowości i czasu kompresji tightvnc.com/archive/compare.html
Hu
1
Jak dokładnie zmieniłeś kodowanie?
ScottF
1

Powodem jest to, że zrzut ekranu / renderer jest nieefektywny. Wiele różnych implementacji VNC bawi się tym, aby osiągnąć lepszą wydajność.

Jeśli nie musisz dokładnie odzwierciedlać zawartości lokalnej konsoli, lepszym rozwiązaniem jest NoMachine NX lub FreeNX jako środowisko pulpitu zdalnego. Wydajność jest dzienna i nocna w porównaniu do VNC, nawet w przypadku łączy WAN.

jfalcon alias Don Fanning
źródło
1

Mam nadzieję, że to zadziała. http://www.karlrunge.com/x11vnc/faq.html#faq ... wyszukaj parametry przeglądarki VNC i parametry x11vnc:

To zadziałało dla mnie.

Kishor Pawar
źródło
1
Witaj w Server Fault! Naprawdę wolimy, aby odpowiedzi zawierały treść, a nie wskaźniki do treści. Może to teoretycznie odpowiedzieć na pytanie, jednak lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać odnośnik.
Chris S,