Accélérer les sessions X à distance

16

J'ai une machine distante exécutant Ubuntu 11.10 Server, à laquelle je me connecte via SSH depuis OS X 10.7.3:

Hôte remote.example.com
 ForwardX11 oui
 ForwardX11Trusted oui

Parfois, je veux lancer une application GUI là-bas (notamment gitk). Mais l'interface utilisateur est plutôt lente. La machine distante et mon propre Mac ont une bonne connexion Internet. Le ping entre eux est d'environ 55 ms et il n'y a pas de perte de paquets. Puis-je faire quelque chose pour accélérer les choses?

La configuration d'une autre solution de bureau à distance est une option, mais j'aimerais l'éviter car je n'ai pas besoin de cette application très souvent.

Alexander Gladysh
la source
avez-vous essayé d'activer la compression lors de l'appel de l'application?
Journeyman Geek
1
Merci. Comme vous pouvez le voir dans ma .ssh/configcitation, non, je ne l'ai pas fait. J'ai ajouté Compression yeset CompressionLevel 9à la configuration d'hôte. Cela semble un peu plus rapide maintenant, mais toujours pas suffisant pour une utilisation confortable. Autre chose que je peux faire?
Alexander Gladysh
@AlexanderGladysh Quelle est votre vitesse en amont ?
EKW
scpdit 1,2 Mo / s lors du téléchargement ou du téléchargement sur cette machine distante, qui est plus ou moins le nombre annoncé par mon FAI.
Alexander Gladysh
1
Si c'est possible, utiliser sshfs ou un autre système de fichiers réseau et exécuter votre application localement serait peut-être plus rapide (à moins que votre dépôt git ne soit vraiment massif).
Eroen

Réponses:

15

L'article Meilleures options SSH pour le transfert X11 recommande d'utiliser à la place du chiffrement AES par défaut, les chiffrements arcfour et blowfish qui fonctionnent beaucoup mieux.

Il faut donc utiliser:

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

Les notes techniques de Seb (si le site est en panne il y a une version archivée ) recommandent plutôt:

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

Cela pourrait aider à améliorer encore les gains de vitesse que vous avez déjà observés avec la compression.

harrymc
la source
1
AES, arcfour et blowflish ne sont pas en compression; ce sont de la cryptographie. Notez qu'en vous éloignant d'AES, vous réduisez la sécurité de la connexion; donc cela pourrait ne pas être possible dans certaines occasions. L' -Coption est cependant clé ici, car c'est la compression. Attention au réglage du niveau de compression, assurez-vous de le mesurer car cela pourrait avoir un impact énorme sur le CPU ...
Tamara Wijsman
De plus, certains processeurs ont une accélération matérielle pour le chiffrement AES.
voler
6

Vous avez mentionné que vous ne vouliez pas configurer une autre solution de bureau à distance mais que vous vous souciez des performances. X11 n'est pas un protocole très efficace, vous ne pourrez donc vous attendre à des améliorations mineures que si vous utilisez un protocole plus moderne.

NX (NoMachine) est probablement votre meilleur choix. Il utilise toujours ssh, donc cela ne devrait pas être trop d'efforts par rapport aux autres protocoles de bureau qui pourraient nécessiter des modifications des paramètres du pare-feu, etc. Il existe des packages NX pour Fedora, donc je suppose qu'ils sont également disponibles pour Ubuntu.

Si vous vous souciez suffisamment des performances pour prendre le temps de poser la question, nous espérons que vous pourrez consacrer quelques minutes de plus à l'apprentissage du NX.

EDIT: Pour clarifier pourquoi X11 sur ssh ne sera jamais rapide: le protocole X traite du dessin de bas niveau comme des lignes et des cercles, et des événements de bas niveau tels que "la souris s'est déplacée de 3 pixels vers la gauche". Les boîtes à outils graphiques modernes comme GTK et Qt ne dessinent pas de lignes, elles dessinent des images. Lorsque X11 passe sur SSH, il doit constamment envoyer des données d'image et des événements de souris de bas niveau. Un protocole de haut niveau comme NX, VNC ou Remote Desktop peut réduire la bande passante et la latence en connaissant le fonctionnement des kits d'outils. Par exemple, ils peuvent éviter d'avoir à envoyer des événements de souris, ils peuvent éviter des milliers de redessins lorsque les fenêtres sont déplacées et ils peuvent mettre en cache des zones de l'écran comme des menus. Si les performances sont même un souci mineur, le X11 brut est toujours le mauvais choix. Heureusement, il existe une multitude d'alternatives rapides faciles à configurer et à utiliser.

amcnabb
la source
Non pas que je ne veuille pas utiliser le bureau à distance, mais j'aimerais d'abord essayer d'optimiser ma connexion X11 :-) Merci, je vais regarder NX.
Alexander Gladysh