Eu já vi inúmeros serviços de virtualização (Azure) e produtos (vmware, kvm, hyperv) E / S e sistema paralisados sob uma pesada carga de trabalho de E / S.
Minhas perguntas são:
- É sempre sensato usar uma solução virtualizada ao executar cargas de trabalho pesadas de E / S?
- Quais são as melhores práticas para esse tipo de coisa?
- O que causa esses problemas, existem gargalos bem conhecidos do sistema ou é apenas uma questão de contenção excessiva?
virtualization
performance-tuning
io
caça bryan
fonte
fonte
Respostas:
Sim, de fato, na verdade, para a maioria das organizações agora virtuais é o padrão e fazer coisas em caixas físicas é a exceção. Temos mais de 100k VMs de todas as formas e muitas delas são> 40k IOPS sem nenhum problema.
O principal aqui não é se é virtualizado ou não - é entender bem as suas necessidades de IO e combinar os recursos de armazenamento virtual. É simples assim, se você sabe o que precisa / deseja e tem o orçamento adequado para isso com seus sistemas de armazenamento, a camada de virtualização realmente desempenha pouca ou nenhuma parte - a menos que você esteja realmente insistindo nas coisas, é claro (estou falando em dezenas / centenas de milhões de PIOs).
Falta de compreensão ou tentativa de fazer muito com poucos recursos de armazenamento, é o que normalmente causa problemas às pessoas.
fonte
Um servidor de banco de dados que recebe regularmente 1 GB / segundo de E / S aleatória? Tenha um aqui.
Ou um servidor de arquivos virtual que entrega até 600mb / segundo para um cluster HPC. Aquele está fugindo de 8 Velicoraptors em um Raid 10, dedicado.
Forneça bastante IO. Eu acho que essa VM SQL tem cerca de 8 ou 10 SSD dedicados.
Pessoas que não fazem matemática básica. Se o subsistema de E / S não for capaz de lidar com a carga, ele também não fará isso na virtualização. Precisa de MUITO IO - forneça um subsistema de armazenamento dedicado de tamanho apropriado.
fonte
Além da matemática básica e do conceito de que você ainda precisa dos mesmos IOs que não são virtualizados, também há QOS / priorização. A maioria das plataformas de virtualização oferece pelo menos um suporte básico para isso, ajudará bastante a impedir que a VM dev de comportamento que se comporta pare seu DB de produção.
fonte