Beschleunigung von Remote-X-Sitzungen


16

Ich besitze einen Remotecomputer mit Ubuntu 11.10 Server, mit dem ich mich über SSH von OS X 10.7.3 aus verbinde:

Host remote.example.com
 ForwardX11 ja
 ForwardX11Trusted yes

Manchmal möchte ich dort eine GUI-Anwendung starten (vor allem gitk). Aber die Benutzeroberfläche ist ziemlich langsam. Sowohl die Remote-Maschine als auch mein eigener Mac verfügen über eine gute Internetverbindung. Ping zwischen ihnen ist ungefähr 55ms, und es gibt keinen Paketverlust. Kann ich etwas tun, um die Dinge zu beschleunigen?

Das Einrichten einer anderen Remotedesktoplösung ist eine Option, die ich jedoch vermeiden möchte, da ich diese Anwendung nicht häufig benötige.


Haben Sie versucht, die Komprimierung beim Aufrufen der Anwendung zu aktivieren?
Geselle Geek

1
Vielen Dank. Wie Sie meinem .ssh/configZitat entnehmen können, habe ich das nicht getan. Ich habe Compression yesund CompressionLevel 9zur Host-Konfiguration hinzugefügt . Es scheint jetzt ein bisschen schneller zu sein, aber immer noch nicht genug für eine komfortable Nutzung. Kann ich sonst noch etwas tun?
Alexander Gladysh

@AlexanderGladysh Was ist deine Upstream- Geschwindigkeit?
EKW

scpsagt 1,2 MB / s beim Hochladen oder Herunterladen auf diesen Remote-Computer, was mehr oder weniger der Zahl entspricht, die mein ISP ankündigt.
Alexander Gladysh

1
Wenn es möglich ist, wäre es möglicherweise schneller , sshfs oder ein anderes Netzwerk-Dateisystem zu verwenden und Ihre Anwendung lokal auszuführen (es sei denn, Ihr Git-Repo ist wirklich umfangreich).
Eroen

Antworten:


15

Im Artikel Beste SSH-Optionen für die X11-Weiterleitung wird empfohlen, anstelle der Standard-AES-Verschlüsselung die viel leistungsstärkeren Verschlüsselungen arcfour und blowfish zu verwenden.

Deshalb sollte man verwenden:

ssh -c arcfour,blowfish-cbc -XC host.com

Sebs technische Hinweise (wenn die Site nicht erreichbar ist, gibt es eine archivierte Version ) empfehlen eher:

ssh -Y -C -o CompressionLevel=9 -c arcfour,blowfish-cbc user@hostname

Dies kann dazu beitragen, die Geschwindigkeitszuwächse, die Sie bereits bei der Komprimierung beobachtet haben, noch weiter zu verbessern.


1
AES, Arcfour und Blowflish sind keine Kompression. Sie sind Kryptographie. Beachten Sie, dass Sie durch einen Wechsel von AES die Sicherheit der Verbindung verringern. In einigen Fällen ist dies möglicherweise nicht möglich. Die -COption ist hier jedoch entscheidend, da dies eine Komprimierung ist. Achten Sie beim Einstellen der Komprimierungsstufe darauf, diese zu messen, da sie einen großen Einfluss auf die CPU haben kann ...
Tamara Wijsman

Einige CPUs verfügen auch über eine Hardwarebeschleunigung für die AES-Verschlüsselung.
Rob

6

Sie haben erwähnt, dass Sie keine andere Remotedesktoplösung einrichten möchten, aber Sie legen Wert auf Leistung. X11 ist kein sehr effizientes Protokoll, daher können Sie nur geringfügige Verbesserungen erwarten, wenn Sie kein moderneres Protokoll verwenden.

NX (NoMachine) ist wahrscheinlich die beste Wahl. Es wird immer noch ssh verwendet, daher sollte es im Vergleich zu anderen Desktop-Protokollen, bei denen möglicherweise Änderungen an den Firewall-Einstellungen usw. erforderlich sind, nicht zu aufwendig sein. Es gibt NX-Pakete für Fedora. Ich gehe also davon aus, dass sie auch für Ubuntu verfügbar sind.

Wenn Ihnen die Leistung so wichtig ist, dass Sie sich die Zeit nehmen, die Frage zu stellen, können Sie hoffentlich noch ein paar Minuten damit verbringen, NX zu lernen.

BEARBEITEN: Um zu verdeutlichen, warum X11 über ssh niemals schnell sein wird: Das X-Protokoll behandelt das Zeichnen auf niedriger Ebene wie Linien und Kreise und Ereignisse auf niedriger Ebene wie "die Maus hat sich 3 Pixel nach links bewegt". Moderne GUI-Toolkits wie GTK und Qt zeichnen keine Linien, sondern Bilder. Wenn X11 über SSH geht, muss es ständig Bilddaten und Mausereignisse auf niedriger Ebene senden. Ein High-Level-Protokoll wie NX, VNC oder Remote Desktop kann die Bandbreite und die Latenz verringern, indem bekannt ist, wie Toolkits funktionieren. Beispielsweise können sie das Senden von Mausereignissen vermeiden, Tausende von Neuzeichnungen beim Verschieben von Fenstern vermeiden und Bereiche des Bildschirms wie Menüs zwischenspeichern. Wenn die Leistung nur von untergeordneter Bedeutung ist, ist Raw X11 immer die falsche Wahl. Glücklicherweise gibt es eine Vielzahl schneller Alternativen, die einfach zu konfigurieren und zu verwenden sind.


Nicht, dass ich keinen Remotedesktop verwenden möchte, aber ich möchte zuerst versuchen, meine X11-Verbindung zu optimieren :-) Danke, ich werde mir NX ansehen.
Alexander Gladysh
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.