quinta-feira, 2 de agosto de 2007

Otimização de Sistemas - Parte 02 - Principais Problemas de Escalabilidade de Aplicações Web em Application Servers

Pessoal,

continuando a nossa série de Otimização, famos tratar agora de problemas de Escalabilidade em aplicações Web, no caso problemas que devemos observar para Applications Servers. Outros grupos de problemas estaremos vendo nos artigos posteriores a este.

-O que devo observar para otimizar uma aplicação Web?

Em termos de problemas de uma tipica arquitetura Web (veja imagem abaixo) , devemos observar a estatistica (veja gráfico de pizza) mostrada abaixo onde ocorrem a maioria dos problemas. Com isto fica mais fácil atacar os possíveis problemas ou mais comuns que giram em torno de 90% da maioria dos problemas de escalabilidade Web.
-Quais os principais problemas de performance que devemos observar?


Vejamos abaixo uma lista geral:

Grupo de Problemas relativos aos Application Servers (A.S.):

01- Problema: Alto Consumo da CPU nos A.S.

Indicador: CPU counter
Posiveis Soluções:
> verifique se código da aplicação pode ser otimizado
> verifique se o A.S. estão de acordo com as especificações
> em ultimo caso o hardware atual é insuficiente

02- Problema: Baixa Memória disponível

Indicador: memória disponível
Possíveis soluções:
> hardware de memória pode ser insuficiente

03- Problema: Baixa Numero de Páginas dinâmicas por segundo

Indicador: indicador de medida como "page-per-second"
Possíveis soluções:
> verifique se o A.S. estão de acordo com as especificações

04- Problema: Baixa Atividade (em uso/chamada) dos Sistemas no A.S., com aumento do tempo de resposta do sistema-alvo

Indicador: CPU ou "memory usage" alto (muito processamento)
Possíveis soluções:
> verifique todas as transações, as sincronas e assincronas, pois podem estar aumento o uso da fila na CPU (queuing) e sobrecarregando a CPU

05- Problema: Alta Atividade (em uso/chamada) dos Sistemas no A.S., mas com baixo indicador de "page-per-second" para paginas dinâmicas

Indicador: Veja todos indicadores de uso da CPU disponiveis
Possíveis soluções:
> possível programação/codificação ineficiente: muitos loops, chamadas a funções desnecessárias, páginas dinâmicas que poderiam ser estaticas, etc.

06- Problema: Baixa atividade no A.S., grandes tempos de respostas, muitos timeouts observados nas máquinas clientes

Indicador: Veja todos indicadores de uso do Servidor (máquina) para o A.S.
Possíveis soluções:
> verifique configuração do A.S., pois pode existir muitas threads sendo usadas aos mesmo tempo (excesso de paralelismo)

07- Problema: Grande tempo de resposta, mas com baixo uso do Banco de Dados (B.D.)

Indicador: Veja os CPU counters (indicadores de CPU) que monitoram a B.D.
Possíveis soluções:
> verifique configuração do A.S., no especifico de "pooling". Verifique se o A.S. está configurado para um "ótimo pooling".

08- Problema: Picos repentinos e aleatórios de tempo de resposta (sobe radicalmente e aleatoriamente o tempo de resposta e depois volta ao normal)

Indicador: Veja os CPU counters (indicadores de CPU) de uso da CPU e tempo de resposta do lado cliente
Possíveis soluções:
> pode ser problema de garbage collector no A.S. ou processos intermitentes agendados

09- Problema: Altos níveis de IO de disco ou CPU no A.S.

Indicador: Veja os CPU counters de uso da CPU e de IO de disco.
Possíveis soluções:
> o log da aplicação é grande ou é realizado de forma inadequada na aplicação. Deve ser configurado os níveis minimos para produção de modo a processar as requisições dos usuários.

10- Problema: Certas páginas carregam muito devagar mesmo sob condições minimas (com concorrência ou sobrecarga minima)

Indicador: Veja os indicadores de uso da CPU e do B.D., analise a quantidade de dados transferidos e processados no B.D.
Possíveis soluções:
> verifique todas as paginas das aplicações, em termos de funções, algoritmos, etc e em todos os objetos usados como .asp, .jsp ou qualquer outro. Muitos dados são obtidos e retidos em processamentos inadequados antes de serem disponibilizados.

11- Problema: Certas páginas carregam muito devagar mesmo sob condições EXTREMAMENTE minimas (sem concorrência ou sobrecarga alguma)

Indicador: Veja os indicadores de uso da CPU durante a execução de cada página, provalmente haverá picos de uso da CPU (ou outros indicadores enquanto você observa)
Possíveis soluções:
> provalmente objetos (ex: muitos "includes" inúteis) que não precisam estar na aplicação ou serem chamados por esta. Estes objetos gastam tempo desnecessário e acarretam picos de tempo de resposta ao serem chamados.

12- Problema: Baixa performance do A.S. durante os testes iniciais

Indicador: O A.S. não está funcionando de acordo conforme especificado pelo fabricante. Medido em geral pelo indicador "paginas dinâmicas por segundo".
Possíveis soluções:
> reveja e siga as instruções do fabricante do A.S. para que este funcione de acordo o desejado.

13- Problema: Baixa performance do A.S. durante os testes iniciais

Indicador: O A.S. não está funcionando de acordo conforme especificado pelo fabricante. Medido em geral pelo indicador "paginas dinâmicas por segundo".
Possíveis soluções:
> reveja e siga as instruções do fabricante do A.S. para que este funcione de acordo o desejado. Isto pode incluir como configurações de software (ajustes de configuração) ou hardware, e até quantidade ou tipo de hardware minimo para funcionamento (ex: quantidade mínima de memória)

Grupo de Problemas relativos aos Web Serves (W.S.):

-veremos nos próximos artigos

Grupo de Problemas relativos a Rede/Network:

-veremos nos próximos artigos

Grupo de Problemas relativos a Sistemas Externos:

-veremos nos próximos artigos

Grupo de Problemas relativos a Banco de Dados:

-veremos nos próximos artigos


Fontes

  • MOLINARI, Leonardo. Gerência de Configuração - Técnicas e Práticas no Desenvolvimento do Software, Editora Visual Books, 2007, Florianópolis, 85-7502-210-5.

  • ___________. Gerência de Projetos - Técnicas e Práticas com Ênfase em Web, Editora Érica, 2004, São Paulo, 85-7194-0050.

  • ___________. BTO - Otimização da Tecnologia de Negócio, Editora Érica, 2003, São Paulo, 85-7194-9506.

  • ___________. Testes de Software - Produzindo Sistemas Melhores e Mais Confiáveis, Editora Érica, 2006, 3a Edição, São Paulo, 85-7194-959X.

  • STICKYMINDS. Endereço: http://www.stickyminds.com/. Acesso em julho de 2007.

Nenhum comentário: