Verifique a integridade e a disponibilidade de seus servidores Linux para obter desempenho ideal com a ferramenta de monitoramento Linux do Site24x7.
As operações de input/output por segundo (IOPS) e throughput de dados são duas características populares de desempenho de qualquer sistema de armazenamento. Nos primórdios da tecnologia de computadores, quando as transferências eram limitadas a pequenos queries a bancos de dados, o IOPS era a principal métrica que podia fornecer aos administradores de sistemas informações gerais sobre o desempenho de um sistema de armazenamento.
Nos dias atuais, com o aumento do big data, do streaming de vídeo online, do processamento de dados distribuídos e da transferência de grandes volumes de dados pela Internet, o throughput de dados está ganhando relevância. As operações com uso intensivo de dados associadas a essas inovações tecnológicas exigem melhor desempenho do armazenamento e da rede, não apenas em termos de IOPS, mas também de taxa de transferência.
Neste artigo, vamos esclarecer a relação entre IOPS e throughput e como os especialistas em DevOps podem usar as duas métricas para avaliar o desempenho do sistema de armazenamento. Também discutiremos como medir o IOPS e throughput e os fatores adicionais necessários para obter uma visão abrangente do desempenho do sistema de armazenamento.
A métrica IOPS mostra quantas operações de leitura e/ou gravação um dispositivo de armazenamento pode realizar por segundo. Uma única operação é realizada em uma unidade de disco rígido (HDD), que normalmente tem blocos de 512B ou 4KB, enquanto as unidades de estado sólido (SSD) modernas expõem a memória de armazenamento em páginas unidas em blocos que podem chegar a 512KB de tamanho.
A métrica, em si, não diz nada sobre a quantidade de dados que uma unidade pode processar. Essa quantidade depende tanto do número de IOPS quanto do tamanho do bloco (a maior quantidade de bits/bytes que pode ser alocada em uma única operação de I/O). Por exemplo, considerando o mesmo valor de IOPS, mais dados podem ser processados (lidos ou gravados) pela unidade com o tamanho de bloco maior.
Além disso, o IOPS pode ser diferente dependendo do fato de os dados serem acessados sequencial ou aleatoriamente. Para HDDs em particular, ele normalmente é mais alto para gravações sequenciais porque o cabeçote do disco pode acessar facilmente blocos contingentes. Por outro lado, as leituras e gravações aleatórias exigem que o cabeçote do disco se mova para encontrar o local necessário. O valor de IOPS também pode ser diferente para operações de leitura e gravação.
Por estas razões, o IOPS pode ser dividido em quatro categorias:
Throughput de armazenamento (também chamada de taxa de transferência de dados) mede a quantidade de dados transferidos de e para o dispositivo de armazenamento por segundo. Normalmente, ela é medida em MB/s. Throughput está intimamente relacionada ao IOPS e ao tamanho do bloco. Considerando o mesmo IOPS, o tamanho do bloco pode fazer uma diferença substancial em termos de throughput. Em particular, os que são menores resultam em menor throughput porque cada I/O lê ou grava dados em blocos não divisíveis.
Da mesma forma que o IOPS, o throughput de dados também pode depender do tipo de I/O: aleatória ou sequencial. O throughput de dados está próximo da largura de banda máxima sustentada para I/O sequencial. Já a de I/O aleatória é significativamente menor do que a de uma I/O sequencial para HDDs, mas é comparável em SSDs modernas.
O desempenho de aplicações com uso intensivo de dados, incluindo bancos de dados, data warehouses e sistemas de processamento de multimídia, é diretamente afetado pelo número de operações de input/output que um sistema de armazenamento pode executar. Portanto, a mídia de armazenamento escolhida deve depender dos requisitos de desempenho dessas aplicações. IOPS altos (por exemplo, 100.000 para SSDs modernos) podem ser um bom indicador de que um sistema de armazenamento atenderá aos requisitos.
Além disso, os operadores de infraestrutura e DevOps podem implementar um sistema de armazenamento misto que combina mídia de armazenamento com diferentes parâmetros de IOPS. Por exemplo, aplicações que usam o armazenamento para redundância, como o armazenamento de índices ""frios"" (não graváveis), podem usar HDD com parâmetros médios de IOPS. Os HDDs com IOPS médio podem ter um bom desempenho com muitas operações de leitura. Por outro lado, aquelas que executam I/O de acesso aleatório de alta frequência serão mais eficientes em SSDs que têm desempenho consistente para dados de acesso aleatório.
A combinação de dispositivos de armazenamento com diferentes perfis de IOPS pode ajudar a otimizar os gastos com armazenamento da sua empresa e tornar o DevOps mais flexível no provisionamento de diferentes mídias para as aplicações.
Embora o IOPS possa ser usado como uma métrica geral de desempenho de armazenamento, ele diz mais sobre o potencial de um sistema de armazenamento do que sobre seu desempenho real. Isoladamente, a métrica de IOPS revela a quantidade máxima de operações de I/O que uma determinada unidade pode realizar. Entretanto, ela não nos diz nada sobre a carga de trabalho de dados que um dispositivo de armazenamento pode processar. Isso ocorre porque o IOPS não leva em conta parâmetros como tamanho do bloco e tempo de resposta. O mesmo IOPS pode resultar em um desempenho de armazenamento diferente, dependendo do tamanho do bloco.
Além disso, o IOPS ""de fábrica"" não indica o desempenho de aplicações com perfis de I/O mistos. É necessário testar o IOPS em uma configuração de produção real para avaliar as necessidades reais das aplicações com uso intensivo de dados.
Em contraste com o IOPS, o throughput fornece uma avaliação concreta do desempenho do armazenamento, pois informa a quantidade de dados que pode ser processada. Você pode usar essa métrica para concluir se uma determinada unidade de armazenamento atende aos requisitos da sua aplicação.
Na I/O sequencial, você está lidando com a largura de banda máxima sustentada medida em MB/s. Durante uma operação de I/O sequencial, a unidade opera em blocos de armazenamento contingentes, o que significa que a taxa de transferência total é limitada apenas por IOPS.
Na I/O sequencial, você está lidando com a largura de banda máxima sustentada medida em MB/s. Durante uma operação de I/O sequencial, a unidade opera em blocos de armazenamento contingentes, o que significa que o throughput total é limitada apenas por IOPS.
O throughput é mais útil para avaliar o desempenho dos sistemas de armazenamento para grandes operações sequenciais do que para I/O aleatória. No primeiro caso, ela está perfeitamente alinhada com a métrica IOPS e pode ser descrita como a largura de banda máxima sustentada.
Em uma I/O aleatória que normalmente envolve pequenos blocos de dados, a latência e o comprimento da fila fazem com que o desempenho se desvie substancialmente do valor do throughput ""de fábrica"". O envio de solicitações de I/O aleatórias pode causar alta latência. Portanto, é consenso geral que as operações com arquivos grandes e fluxos de dados são mais eficientes com o throughput sequencial. Nessas circunstâncias, o conhecimento sobre o throughput ""de fábrica"" diz pouco sobre o desempenho real do armazenamento.
Métrica | Alvo | Significado | Complexidade de medição | Vantagens | Limitações | Uso recomendado |
---|---|---|---|---|---|---|
IOPS | Mede E/S por segundo | Informa quantas operações uma unidade de disco pode realizar por segundo | Difícil de medir devido aos diferentes perfis de E/S e tamanhos de bloco | Boa medida do desempenho potencial do armazenamento | Não leva em conta o tamanho do bloco e a combinação de perfis de E/S | Avaliação básica do desempenho potencial do armazenamento em cenário ideal |
Taxa de transferência | Mede a quantidade de dados lidos/gravados por segundo | Informa quantos dados podem ser processados por segundo | Pode ser facilmente medido para operações sequenciais Mais testes são necessários para E/S aleatória |
Boa medida de operações sequenciais com arquivos grandes e blocos de dados | Não é igual à largura de banda máxima sustentada para E/S aleatória Não leva em conta o comprimento e a latência da fila |
Estimativa de requisitos de aplicações com uso intensivo de dados (especialmente multimídia e big data) |
Você pode medir o IOPS com ferramentas de teste de código aberto, como o Vdbench, que funcionam simulando cargas de trabalho de I/O nos dispositivos de armazenamento de destino. No entanto, essas ferramentas são frequentemente criticadas por calcular a média de IOPS, o que limita sua aplicabilidade em cenários de aplicações reais.
De modo geral, a medição de IOPS é difícil porque as aplicações do mundo real combinam diferentes perfis de I/O. Para obter uma medida mais precisa de IOPS, recomenda-se avaliar o desempenho do armazenamento com base nas métricas da aplicação, como a velocidade das consultas relacionadas ao armazenamento, em vez do número exato de operações.
Considerando o IOPS e o tamanho do bloco, você pode calcular o throughput do armazenamento para gravações sequenciais da seguinte forma:
Throughput = IOPS X block_size
Assim, por exemplo, se o IOPS for 3.000 e o tamanho do bloco for 512 KB, o throughput da unidade será:
3000 * 512KB = 1,535 Mb
Esse valor pode ser considerado como uma largura de banda máxima sustentada porque, no I/O sequencial, os blocos são contingentes. No caso de um I/O aleatório, o throughput também dependerá do tempo médio de pesquisa e da latência do disco.
O throughput também pode ser diferente dependendo do tamanho dos dados da aplicação. O sistema operacional e o dispositivo de armazenamento normalmente combinam pedaços de dados menores para preencher todo o bloco ou os dividem se forem maiores que seu tamanho. A medição da taxa de transferência será mais precisa para dados de aplicações que correspondam a um tamanho de bloco.
O IOPS e throughput são bastante úteis para avaliar o desempenho do armazenamento. No entanto, isoladamente, o IOPS é menos informativo porque mostra apenas o desempenho potencial, enquanto o throughput fornece informações concretas sobre a largura de banda dos dados.
Ao avaliar o desempenho do armazenamento, os operadores de DevOps e de infraestrutura devem levar em conta outros parâmetros, como a latência da rede, o perfil de I/O e o tamanho do bloco. Para avaliar o desempenho do armazenamento, evite usar apenas a métrica de ""fábrica"" de uma unidade. Em vez disso, teste seu desempenho real usando cargas de trabalho reais de produção.
Write for Site24x7 is a special writing program that supports writers who create content for Site24x7 “Learn” portal. Get paid for your writing.
Apply Now