Accelerare le sessioni X remote


16

Ho una macchina remota che esegue Ubuntu 11.10 Server, a cui mi collego tramite SSH da OS X 10.7.3:

Host remote.example.com
 ForwardX11 sì
 ForwardX11Trusted yes

A volte voglio lanciare un'applicazione GUI (in particolare, gitk). Ma l'interfaccia utente è piuttosto lenta. Sia la macchina remota che il mio Mac hanno una buona connessione a Internet. Il ping tra loro è di circa 55 ms e non vi è alcuna perdita di pacchetti. C'è qualcosa che posso fare per accelerare le cose?

Configurare un'altra soluzione di desktop remoto è un'opzione, ma vorrei evitarlo poiché non ho bisogno di questa applicazione molto spesso.


hai provato ad abilitare la compressione quando hai invocato l'applicazione?
Journeyman Geek

1
Grazie. Come puoi vedere dalla mia .ssh/configcitazione, no, non l'ho fatto. Ho aggiunto Compression yese CompressionLevel 9alla configurazione host. Sembra un po 'più veloce ora, ma ancora non abbastanza per un uso confortevole. Qualcos'altro che posso fare?
Alexander Gladysh,

@AlexanderGladysh Qual è la tua velocità a monte ?
EKW,

scpdice 1,2 MB / s quando si carica o si scarica su quella macchina remota, che è più o meno il numero pubblicizzato dal mio ISP.
Alexander Gladysh,

1
Se possibile, usare sshfs o qualche altro filesystem di rete ed eseguire l'applicazione localmente potrebbe essere più veloce (a meno che il tuo repository git non sia davvero massiccio).
Eroen,

Risposte:


15

L'articolo Migliori opzioni SSH per l'inoltro X11 consiglia di utilizzare al posto della cifra AES predefinita, le cifre arcfour e blowfish che offrono prestazioni molto migliori.

Pertanto si dovrebbe usare:

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

Le note tecniche di Seb (se nel sito è presente una versione archiviata ) raccomandano piuttosto:

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

Questo potrebbe aiutare a migliorare ancora un po 'i guadagni di velocità che hai già osservato con la compressione.


1
AES, arcfour e blowflish non sono compressi; sono crittografia. Si noti che, allontanandosi da AES, si riduce la sicurezza della connessione; quindi questo potrebbe non essere fattibile in alcune occasioni. L' -Copzione è la chiave qui, però, perché è la compressione. Fai attenzione all'impostazione del livello di compressione, assicurati di misurarlo in quanto potrebbe avere un impatto enorme sulla CPU ...
Tamara Wijsman

Inoltre, alcune CPU hanno un'accelerazione hardware per la crittografia AES.
ruba il

6

Hai detto che non vuoi impostare un'altra soluzione di desktop remoto ma ti preoccupi delle prestazioni. X11 non è un protocollo molto efficiente, quindi ci si può aspettare solo piccoli miglioramenti se non si utilizza un protocollo più moderno.

NX (NoMachine) è probabilmente la scelta migliore. Usa ancora ssh, quindi non dovrebbe essere troppo sforzo rispetto ad altri protocolli desktop che potrebbero richiedere modifiche alle impostazioni del firewall, ecc. Ci sono pacchetti NX per Fedora, quindi presumo che siano disponibili anche per Ubuntu.

Se ti preoccupi abbastanza delle prestazioni per prendere il tempo di porre la domanda, allora spero che tu possa dedicare qualche minuto in più per imparare NX.

EDIT: Per chiarire perché X11 su ssh non sarà mai veloce: il protocollo X si occupa del disegno di basso livello come linee e cerchi e di eventi di basso livello come "il mouse si è spostato di 3 pixel a sinistra". I moderni toolkit GUI come GTK e Qt non disegnano linee, ma disegnano immagini. Quando X11 supera SSH, deve inviare costantemente dati immagine ed eventi del mouse di basso livello. Un protocollo di alto livello come NX, VNC o Desktop remoto può ridurre la larghezza di banda e la latenza essendo consapevoli di come funzionano i toolkit. Ad esempio, possono evitare la necessità di inviare eventi del mouse, possono evitare migliaia di ridisegni quando le finestre vengono spostate e possono memorizzare nella cache aree dello schermo come i menu. Se le prestazioni sono anche una preoccupazione minore, l'X11 grezzo è sempre la scelta sbagliata. Fortunatamente, ci sono molte alternative veloci che sono facili da configurare e utilizzare.


Non che non voglia usare il desktop remoto, ma prima vorrei provare a ottimizzare la mia connessione X11 :-) Grazie, guarderò NX.
Alexander Gladysh,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.