x11vnc ist langsam, verwendet jedoch nur 10% der verfügbaren Bandbreite


10

Ich verwende x11vnc über ein 15 Mbit / s-Netzwerk mit einer Latenz von 20 ms. Wenn sich der Bildschirm stark ändert, ist x11vnc langsam. Wenn ich beispielsweise einen Tab in einem Browser wechsle, dauert es fast zwei Sekunden, bis die Ansicht vollständig neu gezeichnet ist.

Das Seltsame ist, dass die maximale Verbindungsgeschwindigkeit von x11vnc selbst beim langsamen Neuzeichnen nur etwa 10% der verfügbaren Bandbreite beträgt. Warum nutzt x11vnc nicht die verfügbare Bandbreite, um das Neuzeichnen zu beschleunigen? Zum Beispiel nutzt scp 100% der verfügbaren Bandbreite ohne Probleme.

Wie kann ich den Engpass für x11vnc auf meinem System ermitteln? Bisher denke ich:

  1. 10% Netzwerknutzung => Netzwerk ist kein Engpass
  2. fb-Leserate: 601 MB / s => fb lesen ist kein Engpass

Irgendwelche Ideen, wie ich x11vnc weiter profilieren und herausfinden kann, was eine Verlangsamung verursacht?

Gibt es beispielsweise einen Schalter für x11vnc, der anzeigt, wie viele Daten verarbeitet werden und wie lange es dauert, einen Bildschirm zu erfassen, zu verarbeiten, zu komprimieren und über das Netzwerk zu senden?

Antworten:


10

Um meine eigene Frage zu beantworten:

Der Wechsel von der engen Codierung zur Hextilcodierung löste das Problem mit dem langsamen Neuzeichnen vollständig.

Um einige Details hinzuzufügen: Ich habe festgestellt, dass beim langsamen Neuzeichnen des Bildschirms die CPU auf dem Client auf 100% ausgelastet war. Ich habe eine enge Codierung verwendet und auf der Seite VNC Tight Encoder - Vergleichsergebnisse ist zu sehen, dass eine enge Codierung im Vergleich zur Hextilcodierung ziemlich CPU-intensiv ist. Nach dem Umstieg auf Hextile beträgt die maximale CPU-Auslastung nie 100%, fast die gesamte verfügbare Bandbreite wird genutzt und das Neuzeichnen dauert immer weniger als eine Sekunde. Die CPU des Clients war also der Engpass.


Eine noch bessere Alternative (weniger Bandbreite, geringe CPU-Auslastung und scheint sogar schneller als Hextile zu sein) besteht darin , x11vnc mit TurboVNC-Unterstützung zu kompilieren und dann den TurboVNC-Client zu verwenden .


Hier sind einige Vergleiche von Bandbreite und Komprimierungszeit. Tightvnc.com/archive/compare.html
huyz

1
Wie genau haben Sie die Kodierung geändert?
ScottF


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.