Temos um aplicativo que consulta um banco de dados SQL periodicamente ao longo do dia. Há períodos de atividade zero ou apenas leve, intercalados com solicitações individuais de quantidades relativamente grandes de dados. Quando essas solicitações chegam, o objetivo principal é fornecer os dados rapidamente, e o objetivo secundário é fazer isso de maneira econômica. Devido à natureza do aplicativo, é bastante improvável que os dados/índices tenham sido armazenados em cache na RAM da consulta anterior (diferentes usuários, trabalhando em diferentes partes dos dados).
Para um sistema que experimenta um uso relativamente estável, ouvi a regra geral de observar o comprimento da fila do disco e manter esse número relativamente pequeno. Isso será executado especificamente na AWS, onde vi a regra geral de que um comprimento de fila de disco de 1 por 100 IOPS é razoável.
Como posso estimar os requisitos de IO para tal sistema? O comprimento da fila de disco é um indicador confiável ao lidar com consultas individuais em rajadas? Existem outras métricas que devo considerar?