Desempenho e limitações do uso remoto de uma GUI X?

Desempenho e limitações do uso remoto de uma GUI X?

Eu realmente não tenho nenhuma experiência com X. Pelo que li, parece que o X sempre foi construído do zero para permitir que janelas no WM transmitissem pela Internet, sem transmitir um bitmap (ou bitmap compactado) de a tela inteira (o que exigiria pelo menos tanta largura de banda quanto um vídeo do YouTube).

  1. A GUI de qualquer aplicativo Linux (seja GTK ou qualquer outro) pode ser executada perfeitamente em uma conexão remota?
  2. O "atraso" no uso remoto da GUI é significativamente melhor que um VNC?

Responder1

X funciona bem localmente, em uma LAN e em uma WAN.

Mas ele usa a rede, e o X, como todos os protocolos GUI sobre rede, é bastante intolerante à alta latência.

Alguns aplicativos são menos compatíveis com alta latência do que outros. O Firefox é provavelmente um dos piores infratores, tanto em termos de quanto está fazendo quanto em termos de quão pouco esforço os programadores colocam no desempenho da rede (ou mesmo da CPU). Compare-o com um xterm, que está bem próximo do outro extremo da escala em termos de facilidade de rede.

Dito isto, eu uso regularmente o Firefox em uma conexão WiFi de 54 Mbps para uma LAN de 100 Mbps, e quase não há diferença entre isso e um Firefox local. Claramente, @Marco tem outros problemas de rede se o Firefox demorar 2 minutos para iniciar seu link de 1000 Mbps.

Responder2

  1. Sim. Pelo menos na maior parte - não tive problemas com aplicativos GTK ou Qt.

  2. Não. Eu não diria que é inutilmente lento (se você tiver uma conexão bastante rápida - digamos, 10+ Mbps - quase não há atraso), mas ainda é melhor usar NX ou até mesmo RDP.

Responder3

X11 sobre ssh será lento. Isso aumenta muito para algo como o Firefox. Um impulso fácil é ativar a compactação "-C". Além disso, você precisa verificar se sua rede está perdendo muitos pacotes e o uso de memória/CPU no sistema remoto. Se você estiver vendo uma CPU alta, tente brincar com as especificações de criptografia que está usando. Caso contrário, você precisará de mais/melhor CPU/memória/netowrking.

Tudo isso dito que a melhor solução é algo como nomachine, X2GO ou vnc.

informação relacionada