Dimensionamento de servidor de RDS (TS) – Host de Sessão (Sizing Session Host)

Lambda, Lambda, Lambda Nerds…. Opa, blog errado, rsrsrs

Olá pessoal,

Estou começando uma série de artigos sobre o serviço de área de trabalho remota do Windows, antigamente conhecido como terminal services, ou TS. E para começar detonando, vou dar algumas dicas de como calcular ou homologar um servidor “host de sessão”, que é o cara que irá receber as conexões.

Essas informações não são nada fáceis de se encontrar por aí. O que você faria se o seu chefe lhe pedisse para dimensionar um servidor de RDS para 500 conexões, todas com office 2010, IE 9 e sistema ERP?

Fácil, você vai vir no internet explorer e digitar: 82c.bd8.myftpupload.com !

Segue abaixo um passo a passo de como criar um relatório de performance para medir a capacidade de um servidor de RDS. Essa é a primeira etapa do processo._______________________________________________________________

Criando um contador de performance para dimensionar o servidor Host de Sessão

  1. Vá em iniciar e digite perfmon, que é o monitor de performance do Windows
  2. Depois, expanda Data Collector Sets (estou usando a versão em inglês do Windows 2008 R2)
  3. Clique com o botão direito em User Definied e escolha New>Data Collector Set
  4. Dê um nome para esse coletor, por exemplo: Homologação de RDS
  5. Escolha a segunda opção: Create manually
  6. Marque somente a opção Performance counter
  7. Clique em Add e vamos adicionar os contadores, segundo a tabela abaixo
  8. Se desejar, pode trocar o local do relatório
  9. Save and close
Contadores para adicionar e descrições:
Processor: % Processor Time
Mostra a porcentagem de uso do processador quando ele está executando alguma tarefa
Terminal Services Session: Total Bytes
Total de bytes enviados DE e PARA uma sessão. Dá uma idéia do tráfego de entrada e saída de uma sessão.
Physical Disk: Avg. Disk Queue Length
Média de requisições I/O esperando o disco. Esse número não pode ser maior do que 2.
Memory: Page Faults/Sec
A taxa que o host de sessão está lendo e escrevendo no arquivo de paginação. Quanto maior o número, mais lento poderá ser o seu servidor para lidar com as cargas dos usuários.
Terminal Server Session: WorkingSetPeak
O pico de uso da memória virtual garantida pela RAM para uma sessão. Essa será a demanda de memória física real.
Terminal Server Session: % Processor Time
A procentagem do processador dada aos usuários de sessões RDS.
Executando os testes:
  1. No perfmon, vá em Data Collector Sets
  2. Clique em User Definied
  3. Deve constar lá o coletor que acabamos de fazer
  4. Clique com o botão direito e START
  5. Realize testes com algumas sessões, como descrito abaixo
  6. Clique em STOP
Testando as sessões:
Para poder ter números para futuros cálculos, você precisar simular o seu ambiente de produção. Abra uma sessão de usuário e comece a utilizar os softwares que ele necessita no dia a dia. Dê uma pausa de tempo (para poder visualizar isso depois no relatório) e abra duas sessões, executando mais testes.
A idéia é que você tenha alguns números para tirar uma média e fazer a previsão de uso de recursos.
Analisando os testes:
  1. Vá em Reports
  2. Clique em User Defined
  3. Teve ter o relatório do teste que acabou de realizar acima
  4. Clicando duas vezes no relatório, você irá para a exibição em gráfico
  5. Acima do gráfico, tem um botão para trocar o tipo de relatório, escolha Report
_____________________________________________________________________________________________
Com isso você já vai conseguir fazer algumas previsões. Faça diversos testes, abrindo várias aplicações, com vários usuários, etc.
Mas esse método tem uma falha. Não dá para você inserir uma carga no servidor.
Por exemplo, como saber se o servidor suportaria ou como o servidor lidaria com 500 conexões? Você não tem 500 computadores (ou usuários dispostos) a testar!
Para isso, aguarde o próximo post: Testando a carga de um servidor de RDS (TS) – Host de Sessão (Session Host Stress Test)
  • Bruno Cruz (Belém-Pará)

    ” Fácil, você vai vir no internet explorer e digitar: http://www.cooperati.com.br !”” essa foi boa !! srsrsrrsrsrrrsrs. Bom , brincadeirinhas a parte….muito bom post!!!

  • Bruno Cruz (Belém-Pará)

    Estou aguardando a sequência ! rsrsrsrs

  • Muito bacana esta forma de analisar o desempenho. Voces estão de parabéns !!
    Tenho uma dúvida sobre após este dado esta no report, por qual parametro devo me basear para analise? Como saber se o resultado esta bom ou ruim ?.

    Att,

    • A ideia é você ir testando com algumas aplicações abertas. Assim você saberá qual recurso está com maior necessidade.
      Por exemplo, se com 10 usuários testando uma aplicação a memória utilizada é 10Gb de RAM, logo você já tem uma estimativa que são necessários 1Gb de RAM por usuário que utilizar a aplicação.

      E assim por diante, com todos os outros recursos, como: discos, processador, redes, etc.

  • Carlos Henrique

    Olá Rafael,
    Eu sempre acompanho os seus posts e tenha certeza de que eles ajudam muito.

    A minha dúvida é a seguinte, eu tenho um projeto de TS para uma empresa que nunca teve servidor na rede.

    Eles utilizam basicamente softwares como pacote office e uma aplicação via web.
    A empresa conta com 25 usuários.

    Como forma de redução de custo e gerenciamento, estou analisando a utilização de RDS na empresa, porém não sem bem como dimensionar para a compra do servidor.
    A minha idéia é virtualizar o RDS e AD em um servidor fisico.

    O que fazer?

    Obrigado pela atenção!

    • Existe uma regrinha para isso. Não se aplica a tudo, mas aí vai:
      – Até 30 usuários por processador
      – 120Mb de RAM por usuário para aplicações leves

      Verifica se serve para você!

  • paulo

    Rafael, quando vai ao ar a continuação desse artigo?

    • Paulo, eu gosto muito desse assunto também. O problema é que uma loja de manutenção quebrou um servidor meu de testes, estou sem condições de fazer esse trabalho, que não dá para ser feito em servidores na amazon ou azure, como eu faço com os outros tutoriais.

      Eu estou bem chateado por não estar conseguindo estudar isso!

  • Lucas Silva

    Ótimo artigo Rafael, realmente é dificil encontrar esse tipo de informação na Internet, e a maioria dos profissionais de TI não sabem analisar esses dados ou como trabalhar com o perfmon para resolver um problema de gargalo no TS (eu por exemplo), você saberia me indicar alguma fonte de informação mais aprofundada para que eu entenda melhor esses dados.

    valeu! abs!

    • Lucas,

      Cada tecnologia vai ter a sua fonte de conteúdo para estudos avançados. O Remote Desktop, por exemplo, tem o Remote Desktop Resource Kit, que é um super-livro (em inglês).

  • Augusto

    Olá Rafael, muito bom o seu post tenho uma duvida com relação a quantidade de hops (roteadores) posso ter na comunicação entre os clientes e um servidor de Termina Service (RDS)

  • Marcos Schimidt

    Ola Rafael, acabei de ver seu post mas tardiamente, Tenho um ambiente com 3 servidores de TS na qual estão começando a abrir o bico, existe alguma forma de limitar quantidade de uso de CPU e Memoria por usuários?? Meu ambiente por motivos de desenvolvimento de aplicação sobre muito ao utilizar o Google Chrome….

    Bom, obrigado…