Acelerando as sessões X remotas

16

Eu tenho uma máquina remota rodando o Ubuntu 11.10 Server, ao qual eu me conecto via SSH a partir do OS X 10.7.3:

Host remote.example.com
 ForwardX11 yes
 ForwardX11Trusted yes

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

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

    
por Alexander Gladysh 13.03.2012 / 12:17

2 respostas

13

O artigo Melhores opções SSH para o encaminhamento X11 recomenda usando em vez da cifra padrão AES, as cifras arcfour e blowfish que têm um desempenho muito melhor.

Portanto, deve-se usar:

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

As notas técnicas de Seb (se o site estiver lá embaixo é um versão arquivada ) recomendo antes:

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.

    
por 18.03.2012 / 14:21
5

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

NX (NoMachine) é provavelmente sua melhor escolha. Ele ainda usa ssh, então não deve ser muito esforço extra comparado a outros protocolos de desktop que podem requerer mudanças 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 preocupa o suficiente com o desempenho para ter tempo para fazer a pergunta, esperamos que você possa dedicar mais alguns minutos para aprender o NX.

EDIT: Para esclarecer porque o X11 sobre o 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". Guias de ferramentas GUI modernas como GTK e Qt não desenham linhas, elas desenham imagens. Quando o X11 passa por SSH, ele deve enviar constantemente dados de imagem e eventos de mouse de baixo nível. Um protocolo de alto nível, como o NX, o VNC ou o Remote Desktop, pode reduzir a largura de banda e a latência ao saber como funcionam os kits de ferramentas. Por exemplo, eles podem evitar a necessidade de enviar eventos de 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 é mesmo uma preocupação menor, o X11 em bruto é sempre a escolha errada. Felizmente, há uma infinidade de alternativas rápidas que são fáceis de configurar e usar.

    
por 20.03.2012 / 22:52