Ao usar a sinergia, às vezes é menor

9

Atualização: Eles corrigiram o atraso do macOS wi-fi no Synergy 1.9.0! link

Eu uso synergy . Meu desktop linux atua como servidor e meu macbook se conecta como um cliente. Ao usar a sinergia, ambos estão conectados a um roteador Linksys WRT-45GL, ambos usando uma conexão com fio.

Às vezes, quando eu primeiro clico no meu macbook, a conexão fica lenta. Por exemplo, eu movo o mouse, mas o cursor não se move por 2 ou 3 segundos. Ou eu vou digitar alguma coisa, não vai aparecer nem um pouco. Isso acontece esporadicamente. Geralmente apenas durante o primeiro minuto ou mais de mudança para o mac, mas não necessariamente.

O que posso fazer para corrigir isso?

Eu tentei verificar o uso da CPU em ambas as máquinas e não vi um pico que corresponda ao atraso. Presumo que o gargalo esteja no tráfego da rede, mas não sei como confirmar isso ou como corrigi-lo.

    
por David Oneill 03.12.2010 / 16:58

3 respostas

3

Bem, você sabe que não pode ser a camada 2 se apenas dois dispositivos estiverem conectados (a tabela mac NÃO PODE ser preenchida). Se você tiver mapeamentos de host estáticos, não poderá ser a camada três. Isso deixa largura de banda, colisões e software. O Wireshark pode informá-lo sobre a largura de banda e, às vezes, pode indicar colisões. Eu colocaria um pedaço de hardware barato no meio que tem log para colisões disponíveis para verificar isso. Então você está pronto para a aplicação.

    
por 03.12.2010 / 18:31
3

Eu tive o mesmo problema apenas um segundo atrás, eu tentei todas as outras correções (diferente de Ethernet para o meu mac).

No PC host (Windows), vá para o Gerenciador de Tarefas (Ctrl + Shift + Esc), clique na guia detalhes na parte superior e, em seguida, pesquise por synergy.exe , synergyd.exe , synergys.exe e depois à direita clique neles e no submenu de prioridade definido, escolha High .

    
por 21.05.2016 / 03:32
3

Plano de fundo e resumo da solução

Isto é um pouco longo, mas o ponto é educar através da seção de Instruções Detalhadas. Se você já for educado, leia esta seção e possivelmente a conclusão; -)

Tenho usado o Synergy no Linux e no Windows em suas diversas formas desde os anos 90, e essa questão aparece com frequência. Existem duas causas comuns, e eu lido aqui apenas com o primeiro.

Geralmente, é um problema no nível do sistema operacional, sendo a prioridade do agendador do cliente, portanto, a solução é simplesmente aumentar a prioridade do cliente. Isso melhorará as coisas, mas a experiência geral ainda será baseada nas visões do agendador sobre como é importante atualizar a tela, etc. Veja no final mais sobre isso.

Às vezes, há outro motivo: um ou ambos os processos do servidor ou do cliente são interrompidos e reiniciados. Nesse caso, você deve habilitar o log de nível de depuração no servidor e cliente Synergy e executá-lo a partir daí. Uma vez que você tenha resolvido isso , implemente o acima.

Instruções detalhadas

Aumentando a prioridade do agendador de clientes do Windows

Usando o Windows 7, não conheço os atalhos em versões mais recentes.

  1. Abra o Gerenciador de tarefas (Ctrl-Alt-Esc) e clique na guia Processos.

  2. Clique com o botão direito do mouse em synergy.exe, clique em "Definir prioridade" e escolha Alta ou Tempo real.

  3. Repita para synergyc.exe.

  4. Se o servidor Synergy estiver muito lento, seu processo será synergys.exe.

Aumentando a prioridade do agendador de clientes Linux

Algo semelhante deve funcionar no Mac. Você pode saber como fazer isso na GUI, mas eu uso a linha de comando. A menos que você faça o seguinte como root ( sudo su - ), você terá que brincar (como root) com visudo e configurar os direitos relevantes para usar renice .

ps -eo pid,ni,cmd |\
grep synergy |\
grep -v grep |\
cut -d" " -f2 |\
while read pid; do echo -n $pid" "; done |\
xargs renice -19

Você pode copiar & cole o acima ou coloque-o em uma linha removendo todos os caracteres \ e quebra de linha. Se você quiser ver o que será executado sem realmente fazer isso, altere o último comando para xargs echo renice -19 .

Como dito acima, isso ainda está à disposição da visão do planejador sobre a importância de muitos outros processos. Se você quiser aprender um pouco, você pode fazer o seguinte.

Ver processos do Windows

Abra o Gerenciador de Tarefas. Na aba Processos, clique no botão "Mostrar processos de todos os usuários". Em seguida, clique no menu Exibir e em "Selecionar colunas ...". Certifique-se de que apenas os itens a seguir estejam marcados: Nome de usuário, Uso da CPU, Tempo de CPU, Prioridade de Base, Linha de Comando. Você também pode clicar em Descrição, se desejar.

Você pode arrastar a janela e colunas maiores para facilitar a leitura. Clique no cabeçalho de uma coluna para classificar por ele. Você também pode clicar com o botão direito do mouse em um nome de imagem e, por exemplo, ir para os serviços associados. Isso é útil para esses nomes de imagem branda como svchost.exe. Se você quer uma ferramenta muito poderosa para brincar (tenha cuidado!), Tente ProcessHacker .

Ver processos do Linux

Execute ps -eo pid,ni,cmd | less para ver todos os processos em execução. Cada linha representa um status do processo e as colunas são: o ID do processo, sua prioridade e a linha de comando em questão. Uma pegadinha é que no Unix, quanto menor o valor legal, maior a prioridade.

Conclusão

O fato é que o Synergy depende de muitos outros processos para fazer parte do seu trabalho (como lidar com o SSL no Pro), e cada um desses processos tem uma prioridade atribuída a ele pelo agendador do SO. Portanto, não há realmente uma solução simples.

Mesmo depois de aplicar a "correção" mencionada acima, as coisas geralmente ficam lentas depois de entrar na tela do cliente onde você não estava há algum tempo, e isso se deve a toda essa família de processos colocados no backburner do agendador , por assim dizer. Atualmente, a maioria dos programadores é adaptável e diminui a prioridade dos processos do usuário que ficaram ociosos por algum tempo. Para que o agendador os veja como importantes novamente, é necessário continuar usando por algum tempo, como mover muito o mouse depois de entrar na tela. É uma dor, mas é assim que os agendadores do sistema operacional funcionam em sistemas operacionais não em tempo real.

Existem maneiras de ajustar isso, mas elas são muito específicas para cada sistema operacional (até mesmo versões diferentes) e frágeis (leia-se: quebra facilmente em patches do sistema operacional). Sem olhar o código, espero que Nick & equipe só iria realmente resolver isso, empurrando o Synergy para baixo para o nível do driver do kernel, o que tornaria muito mais frágil e causaria um salto de preço significativo.

    
por 26.05.2016 / 11:03