Estou executando um modelo de visão computacional em uma VM remota sem cabeça (Ubuntu 16.04) no X11Forwarding com o bom e velho Putty e Xming como meu Windows X Server.
Tudo está bem, mas parece que não há queda de quadros se a largura de banda cliente-servidor não puder acompanhar, o que significa que meu aplicativo está lento e renderiza apenas alguns quadros por segundo quando pode fazer centenas se a largura de banda for suficiente.
Existe uma opção de queda de quadro forçada incorporada ao encaminhamento X11 e, se houver, como faço para ativá-la?
Eu recomendo o Xpra para esse tipo de caso de uso: ele não apenas fornece a capacidade de desconectar e reconectar aplicativos X executados em um host remoto, mas também suporta uma variedade de codificações de imagem para fornecer uma experiência decente em diferentes circunstâncias, pode acelere os aplicativos OpenGL e use o OpenGL no cliente para obter melhor desempenho .
Ele tem um cliente Windows nativo , então deve ser fácil de configurar. Você também precisará instalá-lo na VM remota, mas isso é tão fácil quanto
apt install xpra
no Ubuntu.De acordo com essa pergunta relacionada , parece que
X11Forwarding
não é a melhor opção para aplicativos gráficos intensivos, pois o protocolo X11 não foi projetado com o desempenho do desenho de bitmap em mente.Ele basicamente envia instruções de desenho para a rede, o que é "tudo bem" se estivermos falando de algumas janelas com texto, mas obviamente é um exagero para milhões de pixels mudando cada quadro, especialmente quando a rede experimenta alta latência / jitter / pacote perda.
Conforme sugerido na resposta à pergunta mencionada, você pode tentar o x2go e ver se ele atende às suas necessidades.
EDIT como por comentário
Se
x2go
não funcionar, você pode tentar oVNC
que parece ter recursos de queda de quadros. Por exemplo, eu usox11vnc
para conectar à minha área de trabalho a partir de uma conexão remota com ax11vnc -display :0 -auth .Xauthority
qual se conecta ao meu monitor.Não sei se funcionaria,
Xming
mas você pode tentar.O protocolo X11 puro não se presta bem para garantir a transmissão, e muito sobre SSH.
Eu recomendo NoMachine. Ele pode fazer compressão de largura de banda e otimização de rede. Também possui clientes para Mac, Windows e Linux.
PS. NoMachine tem as versões gratuita e paga. Eu sempre usei o gratuito.
Ver NoMachine