IOPS Throughput E Latencia Guia Pratico Para Diagnostico De Performance De Discos
Discos lentos são o câncer de qualquer sistema. Não adianta ter CPU de sobra e gigas de RAM se o disco não acompanha. A verdade é que, na maioria das vezes, o p...
IOPS Throughput E Latencia Guia Pratico Para Diagnostico De Performance De Discos
O Problema: Discos Lentos Matam Performance
Discos lentos são o câncer de qualquer sistema. Não adianta ter CPU de sobra e gigas de RAM se o disco não acompanha. A verdade é que, na maioria das vezes, o problema é o disco.
Aplicações travando, sistemas operacionais engasgando, bancos de dados sofrendo... a causa raiz quase sempre aponta para a lentidão do armazenamento. E não se iluda com marketing: aquele SSD "super rápido" pode estar capenga se você não souber o que olhar.
Para diagnosticar e resolver esses gargalos, você precisa entender e medir IOPS (Input/Output Operations Per Second), throughput (a vazão de dados) e latência (o tempo de resposta). Não basta olhar o painel bonitinho do fornecedor de cloud. É preciso ir a fundo, entender os limites do seu hardware e do seu workload. [[IMG_1: Gráfico mostrando como a latência aumenta drasticamente quando o IOPS atinge o limite do disco]]
Ignorar esses indicadores é como dirigir um carro sem velocímetro: você pode até chegar lá, mas vai demorar muito mais e provavelmente vai quebrar no caminho.
Conceitos Chave: Desmistificando IOPS, Throughput e Latência
IOPS, throughput e latência: o trio parada dura da performance de discos. Entenda de uma vez por todas.
IOPS (Input/Output Operations Per Second): Pense em "pedidos" que seu disco consegue atender por segundo. Mais IOPS = mais "pedidos" atendidos. Bancos de dados e VMs (virtual machines) sedentas por operações aleatórias amam IOPS altos. Marketing adora inflar esse número, então, teste na vida real.
Throughput: A "vazão" de dados. Medido em MB/s ou GB/s. Quanto de informação você consegue mover por segundo. Ideal para arquivos grandes, streaming de vídeo, backups. [[IMG_1: Diagrama ilustrando IOPS como "pedidos" e Throughput como "caminhões" de dados.]] Não se iluda: throughput alto não significa IOPS alto, e vice-versa.
Latência: O tempo de espera. Medido em milissegundos (ms). Quanto tempo leva para o disco responder a um "pedido". Latência alta mata a performance, mesmo com IOPS e throughput "ok". Latência é o inimigo número um da experiência do usuário. Fique de olho nela.
Na Prática
Esqueça a teoria por um minuto. Vamos sujar as mãos e ver como esses conceitos se manifestam no mundo real.
Para monitoramento contínuo, o iostat é seu canivete suíço. Já vem instalado na maioria dos Linux. Rode iostat -x 1 e observe os números mudando a cada segundo. O -x te dá estatísticas estendidas, que são cruciais. Fique de olho em %util (utilização do disco) e await (tempo médio de espera para I/O). %util alto constante (próximo de 100%) indica que o disco está sendo esmagado. await consistentemente alto (acima de, digamos, 20ms, dependendo do seu hardware) aponta para lentidão.
Para testes de carga controlados, o fio é a ferramenta. Esqueça benchmarks sintéticos de marketing. fio permite simular cargas de trabalho reais. Um exemplo:
fio --name=test --ioengine=libaio --filename=/dev/sda --bs=4k --direct=1 --rw=randrw --rwmixread=70 --numjobs=4 --time_based --runtime=60 --group_reporting --name=iops_test
Este comando executa um teste de leitura/escrita aleatória (70% leitura) com tamanho de bloco de 4k, acesso direto (bypass do cache do sistema operacional) e 4 threads simultâneos durante 60 segundos no dispositivo /dev/sda. Adapte o --filename para o seu disco.
Interpretação: IOPS altos com latência (olhe o lat no output do fio) alta indicam que a fila de I/O está gargalhada. O disco está recebendo mais requisições do que consegue processar. Throughput baixo com IOPS altos e tamanho de bloco pequeno sugerem fragmentação ou ineficiência no acesso aos dados. [[IMG_1: Exemplo de output do fio com IOPS e Latência destacados]]. Lembre-se: o que importa é o que acontece sob sua carga de trabalho real.
Armadilhas: Onde a Teoria Encontra a Realidade (e Aparelha)
IOPS, throughput e latência são ótimos no datasheet. Mas a vida real é mais cruel.
Workload é Rei (e Mestre da Enganação): Esqueça os números de marketing. Leitura aleatória? Escrita sequencial? A performance muda completamente. Monitore durante o uso real da sua aplicação. Só assim você terá uma ideia honesta do que está acontecendo. [[IMG_1: Gráfico comparando IOPS de leitura/escrita aleatória vs. sequencial]]
SSD vs. HDD: A Guerra da Latência (e da Propaganda): IOPS altos em SSDs impressionam, mas latência baixa é o verdadeiro benefício. Não compare IOPS diretamente sem sempre considerar a latência. Um HDD com "IOPS altos" pode ser muito mais lento que um SSD com "IOPS menores" em muitas situações.
RAID e Sistemas de Arquivos: A Complexidade Aumenta: RAID adiciona overhead. Sistemas de arquivos, também. RAID-5 penaliza escrita. Sistemas de arquivos com journaling impactam a latência. Tudo influencia. Não ignore o impacto deles na performance do seu armazenamento. Faça testes com a sua configuração específica.
Sarah 'The Backup' Connor
Gerente de Recuperação de Desastres
Seus dados não estão seguros até que ela diga que estão. Especialista em estratégias de backup imutável e RPO/RTO.