Inicio » MongoDB » Modelo de memoria de MongoDB

Modelo de memoria de MongoDB

Utiliza Memory Mapped File (mmap())

Mapea la información de la base de datos en la memoria virtual. Accede a la memoria virtual cuando la necesita. Esto significa que no toda la memoria virtual está cargada en la memoria real, solo una parte va subiendo la información a memoria según a va necesitando,  hasta que llena toda la memoria física. Una vez llena tiene que empezar a descartar páginas para dejar espacio y poder subir nueva información. Tiene que encontrar una página que borrar de la memoria para almacenar la nueva página.Para decidir que página quita de la memoria utiliza un algoritmo de LRU (Least Recently Used), o sea la página que hace más tiempo que no se han utilizado

Resident memory y working set

Working set es la porción de datos que se accede más frecuentemente. Y normalmente corresponde a los índices y a un parte de los datos que se accede más comúnmente. Puede ser que exista un sistema que acceda a todos los datos pero esto no es lo normal.

Cómo calcular el tamaño del working set.

Es bastante importante que todo el working set este alocado en memoria. Con lo cual es muy interesante poder calcular cuánto ocupa nuestro working set para calcular las necesidades de memoria. Esto es muy complicado, nos podemos basar en el tamaño medio del documento y de los índices.

Resident memory es la suma de todas las páginas alocadas en memoria, que incluirá el working set y normalmente más cosas que no sé han utilizado.

El funcionamiento de la memoria en el reinicio de la base de datos mongo o en el reinicio de la máquina.

Con este sistema de memoria cuando reiniciamos una base de datos mongo las páginas siguen en memoria, con lo cual no cuando se produce un reinicio no es necesario volver a disco a obtener la información.  Esto se llama soft page fault. Lo que más le cuesta a mongo son los hard page faults. Esto se produce cuando se reinicia la máquina y por tanto se libera la memoria.

Con este sistema de memoria cuando reiniciamos una base de datos mongo las páginas siguen en memoria, con lo cual no cuando se produce un reinicio no es necesario volver a disco a obtener la información.  Esto se llama soft page fault. Lo que más le cuesta a mongo son los hard page faults. Esto se produce cuando se reinicia la máquina y por tanto se libera la memoria.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s