Olhando para os gráficos MMS do MongoDB, existe uma maneira de calcular uma taxa de leitura/gravação do banco de dados ou determinar aproximadamente se um banco de dados é pesado em leitura ou gravação?
Suponha que eu não tenha contato com o desenvolvedor e, portanto, não tenha ideia do esquema ou caso de uso do banco de dados.
Editar: Entendo que as métricas do MMS são baseadas em bancos de dados inteiros na única instância mongod. No entanto, suponha que atualmente exista apenas um banco de dados.
Exemplo de gráfico MMS:
Existem duas maneiras.
opcounters
Construa a soma dos opcounters que são operações de escrita, construa uma soma dos opcounters que são operações de leitura e coloque-os em relação. Para fazer isso de forma confiável para um cluster sharded, você deve criar um painel que agrupe os opcounters para os shards.
relação de entrada/saída de rede
Isso é autoexplicativo. Mas lembre-se de que você deve dividir a taxa de saída pelo número de membros do conjunto de réplicas para ter uma ideia aproximada. Para um cluster estilhaçado, você também precisa disso agrupado por estilhaços em um painel.
O que realmente me vem à mente: você deve realmente saber se tem um aplicativo pesado de leitura ou gravação. Seu caso de uso, seu modelo de negócios (se aplicável), sua implementação, seus testes de integração: tudo isso deve lhe dar uma ideia.
Os gráficos MMS têm várias quantidades que você pode adicionar para determinar o número de leituras e o número de gravações - de relance, eles são:
lê:
Escreve:
Como um valor aproximado geral, a proporção deles é adequada.
Não é tão simples assim porque existem outras "cargas" de leitura e gravação no sistema:
find
) pode ser uma consulta indexada rápida ou uma varredura de coleta lenta de milhões de documentos.Espero que isso ajude, já que, em geral, você geralmente não se preocupa com a proporção absoluta exata de leituras para gravações, mas sim como essa proporção pode mudar com o tempo.