Azure Premium Storage… Testes com SQLIO
Fala galera, faz tempo eim?
Bom, semana passada fiz uns testes em um cliente acho que a informação vai ser útil pra vocês.
Esse é um cliente que sofria demais com a péssima performance dos discos do Azure, todo a sua infra-estrutura de banco de dados está em VMs.
Depois de aplicar várias técnicas para minimizar o custo e melhorar a performance das operações de I/O, finalmente o storage premium ficou disponível (só pra País de primeiro mundo, adivinha se tem no Brasil?…) para compra, e conseguimos migrar tudo para o novo storage. Porém ficávamos sempre com aquela dúvida, e ai, vai melhorar mesmo? Quantos %? Qual a diferença de performance dos discos? … Para responder essas nossas dúvidas e ter certeza de que o novo storage está melhor, fiz alguns testes com SQLIO e criei alguns gráficos.
Antes de te mostrar os gráficos, deixa eu mencionar algumas técnicas que usamos que ajudam a minimizar o I/O pra caso você tenha tenha tempo (a.k.a. money) de migrar para o novo storage que é claro, custa mais caro.
Segue uma lista de itens que você pode rever no seu ambiente para otimizar o I/O:
- · Use minimum Standard Tier A2 for SQL Server VMs.
- · Keep the storage account and SQL Server VM in the same region.
- · Disable Azure geo-replication on the storage account.
- · Avoid using operating system or temporary disks for database storage or logging.
- · Avoid using Azure data disk caching options (caching policy = None).
- · Stripe multiple Azure data disks to get increased IO throughput.
- · Format with documented allocation sizes.
- · Separate data and log file I/O paths to obtain dedicated IOPs for data and log.
- · Enable database page compression.
- · Enable instant file initialization for data files.
- · Limit or disable autogrow on the database.
- · Disable autoshrink on the database.
- · Move all databases to data disks, including system databases.
- · Move SQL Server error log and trace file directories to data disks.
- · Apply SQL Server performance fixes.
- · Setup default locations.
- · Enable locked pages.
- · Backup directly to blob storage.
Sorry o inglês, fiquei com preguiça de traduzir… ;P Peguei a lista acima do seguinte link: https://msdn.microsoft.com/en-us/library/azure/dn133149.aspx
Bom, se mesmo assim você não conseguir a performance desejada, então vai precisar migrar para os novos discos com premier. A performance foi realmente surpreendente e fez o que prometeu.
Seguem os gráficos que são bem auto-explicativos, em laranja servidor novo, em azul servidor velho:
IPOS foi lindo de ver… Conseguimos bater 15k por segundo, contra ridículos 1400 que estávamos executando no servidor antigo.
Como podemos ver, a latência ficou entre 1ms e 34ms o que é MUITO melhor que o tempo resposta de 33ms a 182ms nos discos velhos.
MBs por segundo também melhorou demais… Agora consigo ler até 252mbs por segundo, contra 47mb…
Espero que seja útil…
Abs.
Fabiano Amorim
Fala Fabiano blz?
Post interessante. Duas perguntas:
1 – Tens estes dados do servidor on-premises ( se é que existia )? Pergunto porque provavelmente era melhor do que o servidor sem SSD, dai queria ver a diferença entre on-premises ( seja SAS, iSCSI, 15k RPM, 10KRPM, etc. ) contra SSD do Azure.
2 – É possível citar os valores em $ (mensal) com SSD e sem SSD?
Um abraço,
Demétrio Silva
Fala mano… blz…
1 – Nope, os servidores já nasceram na nuvem… então não tenho dados on-premise
2 – Essa é uma pergunta que estou ansioso para saber a resposta… Estamos esperando o cliente fechar 1 mês de premium pra “sentir” qual vai ser a diferença em $. Quando eu descobrir isso posto um comentário aqui!
Abs.
Fabiano
Ótimo, ótimo 🙂
Excelente artigo Fabiano.
Valeu Mestre!