domingo, 28 de julho de 2013

     Ter quantidade (e disponibilidade!) de memória RAM é imprescindível para qualquer sistema que queira ser chamado de decente. A primeira e mais óbvia coisa que notamos é que tudo que está na RAM é mais rápido. Mas o que isto realmente significa no MongoDB e como nós podemos saber que algo está na RAM?

     Em nosso post sobre Índices no MongoDB vimos que eles são armazenados na RAM. E já que tudo que está lá é mais rápido, vejamos como ter certeza de que sempre haverá memória suficiente para armazenar todos os nossos índices.

     O MongoDB fornece um modo muito fácil de observar o tamanho de seu banco de índices. O comando db.stats() irá analisar seu banco de dados e mostrar na tela as suas informações. A saída é dada em bytes para os campos dataSize e indexSize, que são nossos objetos de estudo deste post. Se você possui um banco muito grande, este comando poderá demorar alguns segundos para retorna o status de sua base. Vamos a um exemplo mais prático. No shell digite:

db.stats()

para termos a seguinte saída:


     Nesta output temos algumas informações fundamentais como o nome do banco (tweetsearch), a quantidade de collections (3) e a quantidade de documentos armazenados ("objects" : um pouco mais de 5 milhões de documentos). Os pontos mais relevantes no momento são os campos dataSize, indexes e indexSize.

     Em dataSize, temos em nosso exemplo 1,53GB armazenados (lembrando que os valores são mostrados em bytes) indexados por 3 índices. O tamanho destes índices é mostrado no campo indexSize, num total de 1,29GB. São valores muito pequenos, mas mostram que um banco com 1,53GB e apenas 3 índices, exige 1,3GB de memória RAM disponível. Um banco 10 vezes maior (algo bem fácil de se conseguir) já começa a exigir bastante atenção por parte do administrador.

     Um abraço e até o próximo post!


0 comentários:

Postar um comentário