Mostrando postagens com marcador Thin Client. Mostrar todas as postagens

Performance/Qualidade-Raspberry-Thin Client

Raspberry Pi como Thin Client


Atenção!

Esse trabalho está em andamento, em qualquer momento podemos fazer atualizações ou alterações neste documento.Recomendamos que você faça um acompanhamento diário. E se você tiver alguma dica, contribua comentando no final desse post.

Se você estiver utilizando o Raspberry Pi como um cliente Thin Client e está querendo melhorar o seu desempenho, veio no local certo!!

O objetivo desse estudo é melhorar a performance do Raspberry Pi, como um cliente Thin Client, para acesso a máquinas remotas Windows via protocolo RDP. Para isso, realizamos um estudo onde foi levado em consideração Performance e Qualidade na visualização (imagem, fonte vídeo, áudio...)

Procuramos configurar o Raspberry Pi de uma forma que o cliente tenha a impressão de estar em sua própria máquina, fisicamente. As configurações abaixo, podem melhorar em até 70% a performance e qualidade do thin cliente.

A etapa de configuração será dividida em duas partes: Configurando Ambiente Windows e Configurando o Raspberry Pi como Thin Client


Os nossos testes foram realizados com o Raspberry Pi 2B acessando remotamente via RDP um cliente com SO Windows 7 e outro com Windows 10.

Configuração do Raspberry Pi 2 B:
·         CPU: 900MHz
·         Memória RAM: 1GB
·         Fonte de alimentção 5V/2A
·         Ethernet 10/100 (RJ45)
·         Cartão MicroSD Classe 4 (aconselhável classe 10, melhor desempenho)

Configurando Ambiente Windows

Nesta etapa será realizado algumas configurações que são de grande importância para o nosso objetivo: Configurando máquina Windows para realizar conexão RDP, alterando o algoritmo de compressão e configurando melhorias para conexões RDP no Windows.

1. Clicar no menu Iniciar e pesquisar por gpedit.msc e clicar com o lado direito do mouse e escolher a opção Executar como administrador

2. Navegar para Configuração do Computador, Modelos Administrativos, Componentes do Windows, Serviços de Área de Trabalho Remotas e Host de Sessão da Área de Trabalho Remota


3. Configure os itens desejados ou siga o modelo de configurações das imagens abaixo:

4. Em alguns casos, você pode escolher o melhor parâmetro que se adequar a suas necessidades 
 5. Aqui, configuramos o algoritmo de compactação de RDP para Otimizado para usar menos memória. Configure ao seu modo.
 6. Nesta etapa, damos prioridade o modo Otimizar para escalabilidade do servidor

Será necessário realizar mais algumas configurações no Windows, como habilitar o Acesso Remoto e desabilitarauto-tuning TCP.


Habilitar o Acesso Remoto no Windows


1.      Abrir Prompt de Comando como Administrador;
2.      No Prompt de Comando, entre com os seguintes parâmetros:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /t REG_DWORD /v "fDenyTSConnections" /d 0 /f {Enter}

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /t REG_DWORD /v "UserAuthentication" /d 0 /f {Enter}

fDenyTSConnections Habilita(0) ou Desabilita(1) o RDP do Windows
UserAuthenticationDefine se o modo de autenticação será em nível de rede ou não. Para máquinas, principalmente distro Linux, que não estão no AD realizar uma conexão RDP, o valor deve ficar como “0”.


Habilitar o auto-tuning TCP


      1.      Abrir Prompt de Comando como Administrador;
      2.      No Prompt de Comando, entre com os seguintes parâmetros:

netsh interface tcp set global autotuning=disabled {Enter}

Para verificar se foi desabilitado: netsh interface tcp show global

Caso queira reativá-lo: netsh interface tcp set global autotuning=normal

Configurando o Raspberry Pi

Estamos considerando que você já tem uma imagem instalada no seu Raspberry Pi.

Instalar o cliente FreeRDP

1.      Abrir o terminar e entrar com os seguintes parâmetros:

sudo apt-get update
sudo apt-get install freerdp-x11-dbg

Assim que o pacote for instalado, realize um teste no terminal com o seguinte parâmetro:
xfreerdp -sec-nla /v:NomeDoComputadorRemoto

O parâmetro -sec-nla, serve para evitar que seja solicitado suas credências ainda no terminal, o /v: é onde dever ser informado o nome da máquina remota

Para consultar uma lista completa de todos os parâmetros, digite no terminal xfreerdp --help

Parâmetros do FreeRDP Testado

Testamos uma grande maioria dos parâmetros do xfrerrdp que listamos abaixo o que tivemos um melhor resultado.

Parâmetros que testamos e tivemos um melhor desempenho e qualidade: 

xfreerdp +fonts -sec-nla --rfx-mode:video --nsc /jpeg-quality:82% --disable-wallpaper --disable-full-window-drag /cert-ignore -x l /gdi:hw --yes-osb --yes-bmp-cache /sound:sys:alsa  -- /f /w:1920 /h:1080  /v:NomeDoComputador

Script para automatizar conexão

Se quiser automatizar sua conexão, é só criar um arquivo com os seguintes parâmetros:


#!/bin/bash
echo "  ____     ___    _____           _____    ____
 |  _ \   / _ \  |  ___|         |_   _|  / ___|
 | | | | | | | | | |_     _____    | |   | |  
 | |_| | | |_| | |  _|   |_____|   | |   | |___
 |____/   \__\_\ |_|               |_|    \____|
                                                "
echo "DicasQueFunfa - Thin Client"
echo ""
check_process() {
  echo "$ts: checking $1"
  [ "$1" = "" ]  && return 0
  [ `pgrep -n $1` ] && return 1 || return 0
}

while [ 1 ]; do
  # timestamp
        ts=`date +%T`
        echo "  _   _    ___    __  __   _____     ____     ___      ____     ____    
 | \ | |  / _ \  |  \/  | | ____|   |  _ \   / _ \    |  _ \   / ___|  _
 |  \| | | | | | | |\/| | |  _|     | | | | | | | |   | |_) | | |     (_)
 | |\  | | |_| | | |  | | | |___    | |_| | | |_| |   |  __/  | |___   _
 |_| \_|  \___/  |_|  |_| |_____|   |____/   \___/    |_|      \____| (_)
                                                                         "
        read host;
        xfree="xfreerdp +fonts -sec-nla --rfx-mode:video --nsc /jpeg-quality:82% --disable-wallpaper --disable-full-window-drag /cert-ignore -x l /gdi:hw --yes-osb --yes-bmp-cache /sound:sys:alsa /f /v:$host"
        echo "$ts: begin checking..."
        check_process "xfreerdp"
  [ $? -eq 0 ] && echo "$ts: not running, restarting..." && `$xfree`
  sleep 5
done

Lembre de alterar a permissão do arquivo. Exemplo, caso você tenha criado um arquivo com o nome AutoRunRDP, abra o terminar e escreva

chmod +x AutoRunRDP


Lembrando que esse trabalho está em andamento, em qualquer momento podemos fazer atualizações ou alterações neste documento. 
Um comentário: