Contadores de desempenho em testes de carga no Windows Azure

Ao executar testes de carga, o Visual Studio permite coletar dados de contadores de desempenho (normalmente exibidos por Perfmon.exe). Os contadores de desempenho são específicos de cada computador (função de trabalho ou função Web) que hospeda um sistema testado. Usando o Perfmon, você pode especificar processos para monitorar, inclusive processos de aplicativo. Este tópico detalha as etapas para registrar esses contadores durante a execução de um teste de carga do Visual Studio no Windows Azure.

noteObservação
Ao registrar contadores desempenho conforme mostrado neste artigo, os limites da rede reduzem a taxa de transferência de mensagens que podem ser recebidas. Por exemplo, em um cenário local, registrar vários contadores em uma frequência de um por segundo é viável. No cenário descrito aqui, as latências da rede impedem o desempenho equivalente. Na prática, portanto, reduza o número de contadores coletados. Além disso, defina a frequência de coleta para 5 segundos ou mais. Para obter mais informações sobre como criar conjuntos de contadores, consulte Criando conjuntos de contadores de desempenho.

Este tópico é uma variação do cenário básico descrito em Usando testes de carga do Visual Studio em funções do Windows Azure. Esse conjunto de artigos descreve como executar testes de carga do Visual Studio no Windows Azure. No cenário básico, um projeto de teste de carga gera o tráfego em um aplicativo do Windows Azure, e todas as funções estão no mesmo grupo do Windows Azure Connect. Neste tópico, as funções de trabalho e o sistema sob execução do teste estão no mesmo grupo do Connect, mas são executados em serviços hospedados diferentes.

Autores: Sidney Higa e Paolo Salvatori.

Agradecimentos: Jaime Alva Bravo.

Pré-requisitos

Os componentes a seguir são necessários para habilitar a captura de contadores de desempenho.

  1. O executável de instalação do ponto de extremidade do Windows Azure Connect, Wacendpointpackage.exe.

    Consulte Como instalar pontos de extremidade locais com o Windows Azure Connect. Baixe o executável para uso posterior.

  2. Token de ativação do ponto de extremidade do Windows Azure.

    Siga as instruções em Como instalar pontos de extremidade locais com o Windows Azure Connect para obter o token. Salve o token para recuperação posterior.

Visão geral

Os testes de carga do Visual Studio são compostos por duas partes lógicas:

  1. Componentes do teste de carga. Os componentes incluem o controlador de teste e os agentes.

  2. O sistema em teste. O aplicativo sujeito ao teste de carga.

O sistema em teste e os componentes do teste de carga podem ser implantados em conjunto em um sistema hospedado do Windows Azure. Nesse cenário, a comunicação entre as partes é ideal porque os nós de agentes podem se comunicar diretamente com as instâncias de função que executam o aplicativo. As partes podem ser implantadas em sistemas hospedados separados usando as ferramentas do Visual Studio, mas os contadores de desempenho não podem ser coletados. (Isso será explicado posteriormente).

Nesse cenário, o sistema em teste e os componentes do teste de carga são executados em serviços hospedados diferentes, mas os contadores de desempenho devem ser coletados. Há dois serviços hospedados, um para o controlador e os agentes de teste, e um segundo para o sistema em teste. No entanto, há ainda um grupo do Windows Azure Connect usado para habilitar a comunicação.

Agentes e sistema em teste em serviços diferentes

O método padrão para criar um grupo do Connect é usar o Visual Studio, usando a caixa de seleção Ativar o Windows Azure Connect. (Para obter mais informações, consulte o artigo sobre como usar o Windows Azure Connect para criar redes virtuais.) Neste cenário, os agentes e o sistema em teste são executados em serviços diferentes. Portanto, as funções não podem se comunicar entre si usando o método padrão – usar a caixa de seleção não funciona. Intencionalmente, o Windows Azure Connect não permite a comunicação entre as instâncias de função executadas em serviços hospedados diferentes. A solução alternativa é instalar o ponto de extremidade do Connect:

  1. Nas funções de trabalho que hospedam os agentes.

  2. Nas funções da Web e/ou de trabalho que hospedam o sistema em teste.

Como você não usa a caixa de seleção, o ponto de extremidade deve ser instalado automaticamente em outro processo, conforme descrito aqui.

Instalando o ponto de extremidade do Connect automaticamente

Para habilitar a comunicação entre serviços hospedados, baixe o Wacendpointpackage.exe primeiro. Armazene o executável com o projeto do Visual Studio que contém a função de trabalho que hospeda o agente. Em seguida, configure a função de trabalho para instalar o ponto de extremidade automaticamente, como mostrado.

Para instalar um ponto de extremidade do Connect automaticamente

  1. Copie e cole o Wacendpointpackage.exe no projeto do Visual Studio da função de trabalho que hospeda um agente. Siga estas próximas etapas para configurar a função para instalar o ponto de extremidade automaticamente.

    1. Execute o Visual Studio como Administrador e abra a solução que contém o projeto de teste de carga.

    2. No Gerenciador de Soluções, cole o Wacendpointpackage.exe no projeto do Visual Studio que contém a função de trabalho que hospeda o agente.

    3. No Gerenciador de Soluções, clique com o botão direito do mouse no Wacendpointpackage.exe e clique em Propriedades.

    4. No painel Propriedades, defina propriedade de Ação de Compilação como Nenhuma.

    5. No painel Propriedades, verifique se a propriedade de Copiar para Diretório de Saída está definida como Copiar sempre.

  2. Crie um arquivo em lote para acionar o executável de instalação.

    1. Crie um arquivo denominado Startup.cmd.

    2. Copie e cole o código a seguir no arquivo. Substitua <token de ativação do grupo do windows azure connect> pelo token de ativação do seu grupo do Connect.

      Wacendpointpackage.exe /i  /s /m en-us /token <windows azure connect group activation token>
      
  3. Copie e cole o arquivo Startup.cmd no projeto do Visual Studio da função de trabalho que hospeda o agente. Defina a propriedade de Ação de Compilação do arquivo como Nenhuma. Defina também a propriedade de Copiar para Diretório de Saída do arquivo como Copiar sempre.

  4. Configure a função de trabalho ou da Web para executar o arquivo em lote.

    1. Abra o projeto em nuvem do Azure que contém a definição do serviço e os arquivos de configuração.

    2. Abra o arquivo ServiceDefinition.csdef.

    3. No elemento <WebRole> que hospeda o agente, adicione o elemento <Runtime> e defina o contexto de execução como "elevado". Abaixo do elemento <Runtime>, adicione o elemento <Startup>. Em seguida, adicione o elemento <Task> para executar o arquivo em lote no modo elevado. O código completo será mostrado:

      <Runtime executionContext="elevated"/>
      <Startup>
          <Task commandLine="setup\startup.cmd" executionContext="elevated" taskType="simple" />
      </Startup>    
      
      

A técnica descrita é comumente usada para instalar software em funções de trabalho e da Web do Azure. Para obter mais informações, consulte Iniciando tarefas antes de iniciar instâncias de função no Windows Azure.

Inicialização

Antes de passar para a próxima seção, implante e execute as máquinas virtuais no Windows Azure. As instâncias em execução são necessárias para criar os conjuntos de contadores e habilitar o mapeamento desses conjuntos. Para obter mais informações sobre como implantar e executar os serviços hospedados do Azure, consulte o artigo sobre como preparar um aplicativo no Windows Azure.

Criando conjuntos de contadores de desempenho

Para criar conjuntos de desempenho, use as ferramentas de teste da carga do Visual Studio.

Para criar um conjunto de contadores de desempenho

  1. Abra o projeto do Visual Studio que contém os componentes do teste de carga.

  2. Abra o projeto de teste e o arquivo de teste de carga (*.loadtest).

  3. Clique com o botão direito do mouse na pasta Conjuntos de Contadores e clique em Adicionar Conjunto de Contadores Personalizados. O nome padrão é Custom1. Renomeie a pasta do conjunto de contadores conforme necessário.

  4. Clique com o botão direito do mouse na nova pasta de contadores personalizados e clique em Adicionar Contadores.

  5. Na caixa de diálogo Selecionar Contadores de Desempenho, na lista suspensa Computador, selecione o computador que contém o sistema em teste. O computador pode ser uma instância de função em execução no Windows Azure.

  6. Na lista suspensa de categorias de Desempenho, selecione o contador de desempenho a ser monitorado e clique em OK.

  7. Repita as etapas anteriores para adicionar os contadores de que você precisa.

Depois de criar o conjunto de contadores, crie um mapeamento para cada função em execução.

Para criar um mapeamento de contadores de desempenho

  1. No arquivo de teste de carga (*.loadtest), abra a pasta Configurações de Execução.

  2. Na pasta Mapeamentos de Conjuntos de Contadores, localize os nomes das instâncias do Azure em execução. O nome das máquinas virtuais normalmente começam com "RD". Há uma máquina virtual para cada instância da função de trabalho Agente.

  3. Clique com o botão direito do mouse no nó de computador e clique em Gerenciar Conjuntos de Contadores.

  4. Na caixa de diálogo Gerenciar Conjuntos de Contadores, selecione o conjunto de contadores personalizados para adicioná-lo.

O conjunto de contadores personalizados é mapeado agora para cada função de trabalho que executa um agente.

Habilitando a segurança de passagem

A Área de Trabalho Remota é o modo padrão de acessar uma instância de função. Você pode configurar funções para usar a Área de Trabalho Remota com as ferramentas do Visual Studio. A ferramenta do Visual Studio cria um certificado com o nome de usuário e a senha que você especificar. Para obter mais informações, consulte o artigo sobre como usar a Área de Trabalho Remota com funções do Windows Azure. Quando você emprega esse método, o nome de usuário é adicionado automaticamente ao grupo Administrador em todas as funções configuradas para usar a Área de Trabalho Remota. O mesmo usuário deve fazer parte do grupo Administradores nos computadores das funções de trabalho. Isso significa que se usa o mesmo nome de usuário e senha para fazer logon nos agentes e no sistema em teste. A maneira de fazer isso é criar um usuário local e usar essa identidade para implantar o serviço hospedado de teste de carga. Para verificar se a configuração está correta, use a Área de Trabalho Remota para examinar o grupo Administradores em uma função de trabalho em execução. Verifique se o mesmo usuário faz parte do grupo. Para obter mais informações sobre como criar o usuário local para o teste de carga, consulte "Criando um usuário local para gerenciar um controlador de teste de carga" no tópico Publicando o teste de carga no Windows Azure.


Data da compilação:

2013-07-25

Contribuições da comunidade

Mostrar: