Quero saber sobre o IOPS (E / S por segundo) e como ele influencia a operação do DB CRUD


8

Desejo obter um servidor dedicado para o meu banco de dados (MySQL) que execute o InnoDB Engine. Existe esta opção na capacidade do InnoDB que você pode definir o IOPS nela. Digamos que eu tenho um disco rígido SATA 72K-RPM que permita 100 IOPS. Isso significa que meu banco de dados pode executar 100 consultas SQL simultâneas por segundo apenas ou significa 100 leituras ou gravações únicas em 1 segundo? Como um banco de dados pode lidar com 3000 consultas por segundo sendo lançadas em um hardware como esse? Estou um pouco confuso, por favor, explique para mim. Quero obter mais de 200 execuções de consulta no meu servidor dedicado.

Respostas:


10

O IOPS de um disco rígido informa quantas operações de E / S essa unidade específica pode executar por segundo. Como leituras aleatórias, gravações aleatórias, leituras sequenciais e gravações sequenciais têm características de desempenho diferentes, se você estiver olhando para um único número, isso implica que essa é uma média ponderada desses quatro números que representa alguma carga de trabalho. Essa carga de trabalho pode ou não ser semelhante à carga de trabalho que um banco de dados realmente executaria, portanto, seu sistema pode acabar obtendo mais ou menos operações por segundo.

Uma consulta SQL, assumindo que ela faça E / S física (muitas consultas não precisam fazer nenhuma E / S porque elas estão simplesmente lendo dados já existentes na memória do banco de dados ou no cache do sistema de arquivos ou no cache da SAN), tendem a para executar muitas operações de E / S. Se suas consultas estiverem realmente realizando E / S física, uma única consulta poderá facilmente executar 100 operações de E / S por segundo. Você poderia ter 100 consultas em execução simultaneamente, cada uma apenas executando uma operação de E / S física por segundo, mas isso provavelmente significaria que todas as 100 consultas levariam um tempo inaceitável para retornar.

Realisticamente, se você precisar lidar com 3000 consultas por segundo, precisará garantir que a grande maioria das suas consultas não precise fazer E / S física, garantindo que os dados necessários sejam armazenados em cache (de preferência pelo banco de dados). E você precisará distribuir a E / S por um número relativamente grande de unidades (com uma configuração RAID apropriada) para aumentar o total de IOPS que o sistema pode executar. Esse tipo de planejamento de capacidade exigirá uma compreensão razoavelmente boa do seu aplicativo, dos seus dados, de quanto de E / S cada consulta provavelmente precisará, etc. E você provavelmente precisará equilibrar custo x desempenho - adicionando memória ou adição de unidades ou alteração da configuração de RAID envolverá diferentes compensações entre custo, desempenho e espaço disponível que deverão ser considerados.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.