Como medir objetivamente a carga de um aplicativo em um servidor

1

Tudo,

Não sei ao certo por onde começar a procurar recursos para responder à minha pergunta, e percebo que especulações sobre esse tipo de coisa são altamente subjetivas.

Preciso de ajuda para determinar qual classe de servidor devo comprar para hospedar um aplicativo MS Silverlight com um back-end de servidor MSSQL em uma plataforma Windows Server 2008. É um programa interativo, portanto, não posso simplesmente gerar uma lista de URLs para testar e executá-la com 1.000 usuários simultâneos.

Quais ferramentas estão disponíveis para me ajudar a determinar que tipo de carga o aplicativo colocará em um servidor em níveis variados de usuários simultâneos?

Você sugeriria separar o servidor SQL do servidor da Web para diferenciar melhor a carga gerada nas diferentes partes da pilha?

    
por Joe 30.01.2010 / 01:10

2 respostas

1

Mesmo que o Silverlight seja o host do cliente, ele ainda fará chamadas de volta para seus servidores para obter dados e, provavelmente, fazer algum processamento.

Em vez de pensar como o Silverlight é diferente do típico aplicativo da Web, você deve considerar como ele é semelhante (isso é válido porque muitos aplicativos Web usam agora o AJAX que, em alguns casos, envia mais solicitações ao servidor do que o antigo formulário web postbak) ).

De qualquer forma, comece modelando o aplicativo para ver que tipo de tráfego ele gera para o servidor. Use algo como o Fiddler para ver que tipo de tráfego acontece durante os casos de uso típicos. Isso lhe dará uma idéia de que tipo de serviços da web estão sendo chamados e como eles estão sendo chamados.

A partir daqui, você pode começar a criar scripts de teste que imitem as chamadas para esses serviços da Web.

Sua segunda pergunta é difícil de responder, porque depende de muitos fatores. Você terá que fazer alguns testes para ver o que funciona melhor.

    
por 30.01.2010 / 01:59
1

Na verdade, não tenho experiência com o silverlight, mas para essa pergunta, em geral, há uma sacola de opções OK. A maioria de nós ainda tende a confiar em tentativa & erro + palpite.

O LoadRunner é o tipo de vovô, mas se você precisar pedir a ele para sair do seu orçamento.

O Keynote tem uma ferramenta chamada KITE, que é um download gratuito. Você o inicia e, dentro dele, inicia um navegador IE, faz o que acha que um usuário faria e salva a sessão gravada como um script. Você pode então carregar esse script na sua rede de servidores e pagá-los para executá-lo rapidamente. Eles também trabalharão para ajudá-lo a escrever os scripts. Eles são um fornecedor "enterprise-y" assim, então é preciso orçamento para realmente ter uma solução.

Gomez tem um serviço similar, eu não sei os detalhes também. É um pouco mais orientada para a taxa de serviços públicos, pois você compra as transações a granel. Eles podem ser mais baratos, mas, novamente, estar em uma mentalidade "milhares".

Selenium é uma ferramenta gratuita / de código aberto que pode ser usada de forma semelhante ao KITE, mas você precisa ajustar o clustering / clients / reporting stuff. Um dos desenvolvedores também executa o Browser Mob, que basicamente executará seus scripts de selênio em seus servidores de carga para você de forma barata.

Tudo isso pode ser bom para aplicativos complexos de ajax, mas eu sinceramente não sei o suficiente sobre o silverlight para dizer se eles funcionariam.

Como eu disse na frente, a maioria de nós ainda o apoia. Configure o monitoramento e a coleta de métricas com muito cuidado o mais cedo possível e acompanhe a tendência à medida que os usuários adotarem o sistema. Comece a desenvolver métricas de relação aproximada para quantos usuários podem estar ativos de uma vez por cpu ou por GB de memória ou correlacionados a quantos pedidos sql / segundo, etc. Isso ajuda você a projetar sua capacidade de usuário, mostra quais são seus principais porcos e mostra quando, de repente, uma métrica atinge o gráfico devido a uma alteração feita por você.

    
por 30.01.2010 / 02:57