Como posso determinar por que o acesso db parece ser lento com um servidor de db, mas não com outro usando o mesmo site?

1

Temos uma configuração com dois servidores da web e um servidor de banco de dados no Reino Unido e na Austrália. Esses servidores estão com o Rackspace e os servidores da Web se conectam aos servidores de banco de dados por meio do IP privado em ambas as circunstâncias. O mesmo site nos respectivos servidores da Web em cada região conectada a seus respectivos servidores regionais de banco de dados parece gerar um desempenho muito diferente

Qualquer interação entre o respectivo servidor web e o servidor db parece ser significativamente mais lenta no servidor australiano do que no Reino Unido. Isso é obviamente disparando a ação de um navegador em seus respectivos locais.

O servidor australiano DB é um pouco diferente, tem um processador mais rápido e mais memória. Eu trabalho como desenvolvedor .NET, então não tenho certeza de como determinar qual é o problema. Como posso determinar o que está acontecendo aqui e tentar descobrir por que o acesso ao banco de dados parece ser muito mais lento no lado australiano do que no lado do Reino Unido?

Há mais uma diferença, o servidor de banco de dados australiano está executando o IIS para uma página asp clássica que carrega / carrega recursos de um site asp antigo e clássico. Isso não parece estar usando muita memória ou poder de CPU e raramente é usado, então não vejo como poderia ser o problema. O que eu realmente gostaria é uma maneira de ver onde o slow down / timings estão ocorrendo no processo do servidor web. Qual é a melhor maneira de fazer isso?

edit - O que eu notei é que no SQL profiler os mesmos eventos no banco de dados australiano parecem acionar uma duração muito maior para o logout de auditoria. Tanto quanto eu posso reunir isso significa apenas que os eventos que ocorrem durante o login para o servidor SQL estão demorando mais. Não tenho certeza se mais alguma coisa pode ser determinada a partir disso.

    
por Rob 25.05.2018 / 13:18

1 resposta

1

Aqui serão as primeiras coisas que eu faria na sua situação:

  1. Faça o download e execute o script de diagnóstico Blitz de Brent Ozar. Preste especial atenção aos itens de alta prioridade, mas certifique-se de examinar todo o relatório.
  2. Eu verificaria a quantidade de RAM alocada para o SQL em cada servidor. Por padrão, o SQL tem uma alocação ilimitada de RAM. O limite de memória deve ser limitado no máximo a 4 GB menos que a RAM total no sistema. E quanto mais outras coisas estiverem sendo executadas nesses servidores, maior será o spread entre a memória máxima do SQL e a quantidade instalada do sistema. O objetivo aqui é garantir que o sistema operacional não tenha falta de memória RAM para suportar as tarefas solicitadas ao computador. O sistema operacional não pode interagir de forma eficiente entre o hardware e o SQL se ele estiver com falta de memória RAM.
  3. Faça o download do Microsoft SysInternals Suite e inicie o Process Explorer. Procure gargalos de desempenho usando seus monitores de recursos, principalmente I / O de disco.
  4. Também no Sysinternals Suite, use o TCPView para verificar quantas conexões seu servidor de banco de dados está ativo. Se o número for na casa das centenas, você provavelmente precisará prestar atenção ao motivo e evitar que nada fique preso.
  5. Finalmente, depois que a tarefa fácil é checada duas vezes, interrompa o SQL Profiler e comece a procurar consultas lentas e outros problemas. link
por 25.05.2018 / 16:21