No momento, temos uma VM com pouca potência e estamos propondo mudar para uma VM do Azure com melhores especificações. O problema é que a VM do Azure é muito mais lenta que a VM original, embora seja uma especificação mais alta.
O servidor original é uma VM de 2 núcleos com 2 GB de memória que também é um servidor da web. Ele está executando o Microsoft SQL Server Web Edition 2008 R2 e, como esse servidor é usado para outras coisas, tivemos que limitar a memória máxima do servidor no SQL Server para 512 MB .
O novo servidor é uma VM de 4 núcleos com 7 GB de memória que é apenas um servidor de banco de dados. Ele está executando o Microsoft SQL Server Standard Edition 2008 R2 e não limitamos a quantidade de memória que o SQL Server pode usar.
Este é um dos dois servidores configurados em um ambiente espelhado, mas o banco de dados em que estou executando testes não é espelhado. Os outros bancos de dados neste servidor não estão recebendo muito tráfego no momento (na verdade, o Activity Monitor não mostra atividade nos outros bancos de dados enquanto eu executava esses testes).
Percebo que um problema nas VMs do Azure é que os discos rígidos são um recurso de rede, o que seria a fonte de lentidão, mas ainda é mais lento mesmo quando há 0 leituras físicas mostradas nas estatísticas de E / S.
Eu segui os conselhos de ajuste nesta página na VM do Azure, incluindo a distribuição dos discos (dois discos por unidade) e a colocação dos arquivos de log e dados em unidades separadas.
As únicas coisas que não fiz foram habilitar a compactação de páginas, limitar o crescimento automático no banco de dados e mover o log de erros do SQL Server e rastrear os diretórios dos arquivos em discos de dados. Também não fiz isso no servidor antigo.
O servidor antigo não realiza nada desse ajuste e os arquivos de log e dados estão na mesma unidade que não está distribuída.
O banco de dados no servidor atual é de 65 GB (45 dados e 20 log), que era um pouco grande demais para ser transferido para o novo servidor, por isso estou testando em um banco de dados menor (6 dados e 13,5 log)
Os resultados no servidor antigo são CPU time = 1311 ms, elapsed time = 1057 ms.
e no novo servidor são CPU time = 1281 ms, elapsed time = 2525 ms.
Isso é apenas uma execução, mas os resultados são representativos do que eu estou vendo normalmente.
O novo servidor parece ter constantemente um tempo decorrido significativamente maior que o tempo da CPU. Isso é um problema e há algo que eu possa fazer para rastrear o que está causando isso?
Que outras etapas posso executar para descobrir por que esse servidor está indo tão lentamente quando parece que deve ser mais rápido que o servidor antigo?