SQL / IIS (ASP clássico) Otimização de desempenho de aplicativos da Web

2

Temos um aplicativo da Web ASP clássico que estamos hospedando com um provedor de hospedagem de terceiros (Rackspace). Temos ~ 100 bancos de dados em um servidor SQL e em torno do mesmo número de sites em um servidor Web (IIS). Alguém tem alguma dica para otimizar o desempenho. Ocasionalmente, vemos memória e picos de CPU ao longo do dia. Estamos configurados com um simples servidor SQL e um par de servidores Web.

    
por Mike Messina 03.06.2009 / 15:20

3 respostas

2

Essa não é uma pergunta simples e não tem uma resposta simples. Livros inteiros foram escritos sobre otimização de desempenho.

Talvez tente começar com esses artigos que abordam (na primeira parte) os problemas de desempenho. link

link

Eu também posso sugerir um livro. "SQL 2008 Performance tuning destilada" por Grant Fritchey e Sajal Dam.

Se você puder encontrar o pior desempenho das consultas, poste-as aqui ou em um bom fórum de SQL e alguém definitivamente o ajudará. Como é, a pergunta é muito ampla para ter uma resposta simples.

    
por 03.06.2009 / 15:45
2

No lado do SQL, pode ser uma boa ideia usar o SQL Profiler para identificar qualquer consulta ou procedimento armazenado que esteja demorando muito para ser executado. Se você puder identificar problemas reais, isso pode ajudar a acelerar o seu aplicativo.

Tenha em mente que a ferramenta Profiler geralmente requer muita filtragem para obter as informações corretas. É legal que você possa registrar os horários de início das consultas sendo executadas e tentar combiná-las com os tempos de pico da sua CPU.

    
por 03.06.2009 / 15:41
1

Eu suspeito que você precise fazer alguns perfis. Em um nível bruto, você precisa saber onde estão os gargalos, de modo que as diretrizes típicas de monitoramento de desempenho do Windows se aplicam. Gráfico de desempenho bruto da CPU (% de utilização,% modo de usuário versus modo de kernel, comutadores de contexto), disco (tamanho da fila,% de tempo de disco) e memória (falhas de página / seg., Tamanhos de conjunto de trabalho). Você vai querer começar a restringir a quais processos (IIS WAM, SQL Server, etc) estão causando sofrimento.

Como os outros pôsteres disseram - se são as consultas SQL que você está executando, provavelmente é um problema de otimização de banco de dados. Não subestime a possibilidade de que seus scripts, no entanto, estejam executando consultas tolas (SELECT * e filtrando os resultados no script, etc) que estão causando uma carga anômala do banco de dados.

Se você entrar em scripts individuais (ou seja, descobrir que o gargalo aponta para processos do IIS / WAM), dê uma olhada nesta pergunta sobre o Stackoverflow: link Há um trecho de código que é um temporizador básico de execução. Correndo o risco de impactar ainda mais o desempenho, mas em um esforço para obter mais visibilidade, você também pode considerar o registro dos parâmetros passados e os tempos de execução de seus scripts no banco de dados. A procura de valores discrepantes nesses dados pode ajudá-lo a encontrar condições de borda em seus scripts. Idealmente, você deseja projetar com o perfil em mente desde o início, e a adaptação pode ser difícil.

    
por 03.06.2009 / 15:48