Acelerando sessões X remotas

16

Eu tenho uma máquina remota executando o Ubuntu 11.10 Server, à qual me conecto via SSH no OS X 10.7.3:

Host remote.example.com
 ForwardX11 sim
 ForwardX11Trusted sim

Às vezes, quero iniciar um aplicativo GUI lá (principalmente gitk). Mas a interface do usuário é bastante lenta. Tanto a máquina remota quanto o meu próprio Mac têm uma boa conexão à Internet. O ping entre eles é de cerca de 55 ms e não há perda de pacotes. Existe algo que eu possa fazer para acelerar as coisas?

A configuração de outra solução de área de trabalho remota é uma opção, mas gostaria de evitá-la, pois não preciso desse aplicativo com muita frequência.

Alexander Gladysh
fonte
você tentou ativar a compactação ao chamar o aplicativo?
Journeyman Geek
11
Obrigado. Como você pode ver na minha .ssh/configcitação, não, eu não fiz. Eu adicionei Compression yese CompressionLevel 9à configuração do host. Parece um pouco mais rápido agora, mas ainda não é suficiente para uso confortável. Mais alguma coisa que eu possa fazer?
Alexander Gladysh
@AlexanderGladysh Qual é a sua velocidade de upstream ?
EKW
scpdiz 1,2 MB / s ao fazer upload ou download para essa máquina remota, que é mais ou menos o número que meu ISP anuncia.
21812 Alexander Gladysh
11
Se for possível, usar sshfs ou outro sistema de arquivos de rede e executar seu aplicativo localmente seria mais rápido (a menos que seu repositório git seja realmente grande).
Eroen

Respostas:

15

O artigo Melhores opções de SSH para encaminhamento do X11 recomenda usar em vez da cifra AES padrão, as cifras arcfour e blowfish com desempenho muito melhor.

Portanto, deve-se usar:

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

As notas técnicas do Seb (se o site estiver em baixo, há uma versão arquivada ) recomendam:

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

Isso pode ajudar a melhorar um pouco mais os ganhos de velocidade que você já observou com a compactação.

harrymc
fonte
11
AES, arcfour e blowflish não são compressão; eles são criptografia. Observe que, ao se afastar do AES, você reduz a segurança da conexão; portanto, isso pode não ser viável em algumas ocasiões. A -Copção é a chave aqui, no entanto, porque isso é compactação. Cuidado com a configuração do nível de compressão, certifique-se de medir-la como ela poderia ter um enorme impacto sobre a CPU ...
Tamara Wijsman
Além disso, algumas CPUs possuem aceleração de hardware para criptografia AES.
rob
6

Você mencionou que não deseja configurar outra solução de área de trabalho remota, mas se preocupa com o desempenho. O X11 não é um protocolo muito eficiente, portanto, você poderá esperar pequenas melhorias, a menos que use um protocolo mais moderno.

NX (NoMachine) é provavelmente a sua melhor escolha. Ele ainda usa ssh, portanto, não deve haver muito esforço extra em comparação com outros protocolos de desktop que podem exigir alterações nas configurações do firewall, etc. Existem pacotes NX para o Fedora, então presumo que eles também estejam disponíveis para o Ubuntu.

Se você se importa o suficiente com o desempenho para tirar um tempo para fazer a pergunta, esperamos que você possa gastar mais alguns minutos para aprender o NX.

EDIT: Para esclarecer por que o X11 sobre ssh nunca será rápido: o protocolo X lida com desenhos de baixo nível, como linhas e círculos, e com eventos de baixo nível, como "o mouse moveu 3 pixels para a esquerda". Os kits de ferramentas GUI modernos, como GTK e Qt, não desenham linhas, eles desenham imagens. Quando o X11 passa pelo SSH, ele deve enviar constantemente dados de imagem e eventos de mouse de baixo nível. Um protocolo de alto nível como NX, VNC ou Área de trabalho remota pode reduzir a largura de banda e a latência ao estar ciente de como os kits de ferramentas funcionam. Por exemplo, eles podem evitar a necessidade de enviar eventos do mouse, podem evitar milhares de redesenhos quando as janelas são movidas e podem armazenar em cache áreas da tela como menus. Se o desempenho é uma preocupação menor, o X11 bruto é sempre a escolha errada. Felizmente, existem inúmeras alternativas rápidas que são fáceis de configurar e usar.

amcnabb
fonte
Não que eu não queira usar a área de trabalho remota, mas gostaria de tentar otimizar minha conexão X11 primeiro :-) Obrigado, examinarei o NX.
precisa saber é o seguinte