Hay ocasiones en las que se puede notar una demora en las consultas que se hacen a MongoDB, con el Profiler podremos registrar operaciones que superan un tiempo de ejecución establecido y aplicar las mejoras de optimización correspondientes.
Activar Profiler
Para activarlo primero accede a la base de datos y luego ejecuta:
db.setProfilingLevel(1, { slowms: 5000 });JavaScriptEsto registra cualquier operación que tarde más de 5000 ms. Los niveles disponibles son:
0: Desactivado1: Solo operaciones lentas2: Todas las operaciones (no recomendado en producción)
Ver estado de Profiler
db.getProfilingStatus();
// Este comando devuelve un objeto como:
// {
// was: 1,
// slowms: 200,
// sampleRate: 1
// }JavaScriptwas: nivel actual del profiler (0 = off, 1 = slow ops, 2 = all ops)slowms: umbral configuradosampleRate: porcentaje de operaciones que se muestrean
Ver registros
Consulta las operaciones más recientes:
db.system.profile.find().sort({ ts: -1 }).limit(10).pretty();JavaScriptFiltrar las consultas que mas se demoran mas de 5 segundos
db.system.profile
.find({ millis: { $gt: 5000 } })
.sort({ millis: -1 })
.limit(10);JavaScriptFiltrar por consultas que se demoran mas de 5 segundos mostrando solo la duración, la hora de ejecución y el comando ejecutado
db.system.profile
.find({ millis: { $gt: 5000 } }, { millis: 1, ts: 1, command: 1 })
.sort({ millis: -1 })
.limit(10);JavaScriptDesactivar Profiler
db.setProfilingLevel(0);JavaScriptRecomendaciones
- Usa un slowms entre 50 y 200 ms según tus necesidades.
- Nivel 2 solo para pruebas, ya que impacta el rendimiento.
Deja una respuesta