domingo, 26 de agosto de 2007

Otimização de Sistemas - Parte 05 - Principais Problemas de Escalabilidade de Aplicações Web em Banco de Dados



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 Banco de Dados e Sistemas Externos. Outros grupos de problemas estaremos vendo nos artigos posteriores a este.

-Quais os principais problemas de performance que devemos observar?

Vejamos abaixo uma lista geral:

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

(visto no artigo anterior)

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

(visto no artigo anterior)

Grupo de Problemas relativos a Rede/Network:

(visto no artigo anterior)

Grupo de Problemas relativos a Sistemas Externos:

27- Problema: Todo Sistema Web (interno) funciona satisfatoriamente mas a performance global do sistema ainda não é ideal.

Indicador: Baixas performance indica baixo tempo de resposta, baixo quantidade de páginas por segundo ou baixa quantidade de transações por segundo. Os critérios de performance (metas) não foram atingidos.
Possíveis soluções:
> Verifique as conexões com sistemas externos ao sistema-alvo e suas interações. O tempo de resposta na chamada a um sistema externo pode ser um gargalo considerável. Um exemplo comum é validação de cartão de crédito, que é feita externamente.

Grupo de Problemas relativos a Banco de Dados:

28- Problema: Grande número de requisições na fila do Application Server, mas com o mesmo tempo de resposta do Application Server baixo.

Indicador: Veja indicador de requisições na fila do Application Server.
Possíveis soluções:
> Verifique se há um grande número de conexões do Application Server para oBanco de Dados. Muitas vezes é um erro de configuração de JDBC. As vezes aumentar a quantidade de conexões permitidas no JDBC já resolve o problema de performance.

29- Problema: Baixo Performance de Queries no BD.

Indicador: Veja alguma transação ou página específica está muito lenta.
Possíveis soluções:
> Verifique queries e stored procedures no BD usando os avaliadores de índices. Veja se o query Plan está correto e otimizado. Otimize as queries desejadas seja minimizando sortings inúteis, triggers desnecessários, tabelas temporárias em sentido, ou parametrizando o máximo possível stored procedures. Resumo: otimize o máximo possível.

30- Problema: Performance geral do BD lenta.

Indicador: Veja alto índice de utilização do BD para baixa quantidade de usuários, em especial quando os testes são executados.
Possíveis soluções:
> Verifique se os patches do BD relativos a otimização e performance foram aplicados. Verifique se o BD está configurado em ótimo ajuste de acordo com o fornecedor.

31- Problema: Performance geral do BD lenta, mas com grande volumes de dados sendo trocados entre o Application Server e o Database Server.

Indicador: Veja alto índice de utilização do BD para grande volume de dados movimentados.
Possíveis soluções:
> Verifique se queries e stored procedures são recompiladas a cada execução. A pré-compilação em stored procedures em geral ajuda muito.

32- Problema: Alto uso de espaço em disco no Database Server.

Indicador: Disk IO alto é um ótimo indicador para isto:
> Verifique índices, tabelas, ou outro objetos de grande são armazenados em discos separados e de forma não lógica. Verifique se todas as queries utilizam algum índice. Veja se o Database Server tem memória suficiente e como está a configuração do cache.

33- Problema: Baixa Performance em Multi-usuário no BD.

Indicador: Alto índice de tabelas e transações em "locked". Veja através dos monitores do BD:
> Verifique as transações utilizadas e executadas de modo que as mesmas sejam otimizadas ao máximo para cenários em caso de Multi-usuários. Modifique ou reveja as estratégia de "locked" das tabelas e objetos.

34- Problema: Baixa Performance de Query.

Indicador: Tabelas com alto índice de scan:
> Verifique os índices. Pode haver algum não criado ou algum novo que precise ser criado.

PS: A série de Otimização não termina aqui. Temos muitos outros tópicos a abordar!


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: