PÓS-GRADUAÇÃO EM ESTRATÉGIAS EM ARQUITETURA DE SOFTWARE
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e
hospedados em servidores Microsoft IIS
RAFAEL DO CARMO [email protected]
PÓS-GRADUAÇÃO EM ESTRATÉGIAS EM ARQUITETURA DE SOFTWARE
INTRODUÇÃO E MOTIVAÇÃO• Aumento da competitividade• “O mais rápido possível”• Usuários impacientes
PÓS-GRADUAÇÃO EM ESTRATÉGIAS EM ARQUITETURA DE SOFTWARE
FUNCIONAMENTO DE UM WEBSITE• Protocolo HTTP;• Servidores WEB;• Linguagens de Programação;• Navegadores
PÓS-GRADUAÇÃO EM ESTRATÉGIAS EM ARQUITETURA DE SOFTWARE
OTIMIZAÇÃO – LADO SERVIDOR• Monitoramento: Logs, Gráficos, Contadores• Memória• CPU• Threads• Cache• Rede
PÓS-GRADUAÇÃO EM ESTRATÉGIAS EM ARQUITETURA DE SOFTWARE
OTIMIZAÇÃO – LADO SERVIDOR• Memória RAM– Fonte frequente de problemas– Disponibilidade > 5%– Identificar causas do consumo– Cuidado com caching– Cuidado com Garbage Collector– Evite paginação
PÓS-GRADUAÇÃO EM ESTRATÉGIAS EM ARQUITETURA DE SOFTWARE
OTIMIZAÇÃO – LADO SERVIDOR• CPU– Resolver após Memória RAM– % CPU alto + % RAM ou % I/O baixos = Atualizar
ou Incluir processadores– Atenção para o enfileiramento de Threads
PÓS-GRADUAÇÃO EM ESTRATÉGIAS EM ARQUITETURA DE SOFTWARE
OTIMIZAÇÃO – LADO SERVIDOR
• DISCOS RÍGIDOS E REDE– Utilizar RAID;– Evitar paginação;– Balancear carga de Rede.
“No mundo real, na maioria dos casos, um único servidor não é suficiente para suportar o tráfego de rede. Nesse caso, você deve escalar seu website através de múltiplos servidores” (STANEK, 2007).
PÓS-GRADUAÇÃO EM ESTRATÉGIAS EM ARQUITETURA DE SOFTWARE
OTIMIZAÇÃO – LADO SERVIDOR• Práticas de programação– Instancie tarde; libere cedo– Strings requerem cuidados– Pool de conexões– Junção de consultas e multiplos recordsets
• Cache– Output Caching– Data Caching
• Compressão GZIP
PÓS-GRADUAÇÃO EM ESTRATÉGIAS EM ARQUITETURA DE SOFTWARE
NAVEGADORES - DEBUG• IE - Ferramentas para Desenvolvedores• Chrome Developer
Tools• FireBug
PÓS-GRADUAÇÃO EM ESTRATÉGIAS EM ARQUITETURA DE SOFTWARE
OTIMIZAÇÃO – LADO CLIENTE• 80-90% requisições: referências no HTML• Melhoria: 40-45% tempo de resposta• Algumas causas:– Requisições HTTP paralelas– Tamanho do HTML e ViewState– Tempo de carregamento de scripts e arquivos
referenciados
PÓS-GRADUAÇÃO EM ESTRATÉGIAS EM ARQUITETURA DE SOFTWARE
OTIMIZAÇÃO - AÇÕES• Diminuir requisições HTTP• Evitar redirecionamentos• Utilizar CDN• CSS no head• Scripts no final do HTML• Múltiplos cabeçalhos de host• Não usar expressões CSS• Scripts externos e sem duplicidade• Minification
PÓS-GRADUAÇÃO EM ESTRATÉGIAS EM ARQUITETURA DE SOFTWARE
CONTENT DELIVERY NETWORKS
PÓS-GRADUAÇÃO EM ESTRATÉGIAS EM ARQUITETURA DE SOFTWARE
OBRIGADO!