MongoDB es una base de datos NoSQL ampliamente utilizada por su escalabilidad y flexibilidad. Sin embargo, si no se ajusta correctamente, puede convertirse en un cuello de botella para tus aplicaciones. En esta guía te explico cómo hacer tuning de MongoDB en servidores Linux para maximizar su rendimiento, con ejemplos prácticos y recomendaciones reales.
¿Por qué hacer tuning de MongoDB?
Por defecto, MongoDB está configurado para funcionar “de forma general”, pero cada entorno tiene requisitos distintos. Aplicar técnicas de tuning en MongoDB puede ayudarte a:
- Reducir latencias de escritura y lectura.
- Mejorar la respuesta bajo cargas altas.
- Aumentar la eficiencia del uso de memoria y CPU.
- Detectar cuellos de botella antes de que afecten al sistema.
Recomendaciones generales de tuning para MongoDB
1. Usa WiredTiger correctamente
WiredTiger es el motor de almacenamiento por defecto desde MongoDB 3.2. Asegúrate de que el parámetro cacheSizeGB
esté bien dimensionado. Como regla general:
cacheSizeGB ≈ (RAM Total del sistema * 0.5) - RAM reservada para el sistema operativo y otros procesos
Ejemplo de ajuste:
storage:
wiredTiger:
engineConfig:
cacheSizeGB: 16
2. Ajusta los límites del sistema (ulimits
)
Por defecto, muchos sistemas Linux imponen límites demasiado bajos para procesos como mongod
.
Ajustes recomendados en /etc/security/limits.conf
:
mongodb soft nofile 64000
mongodb hard nofile 64000
mongodb soft nproc 64000
mongodb hard nproc 64000
Y en /etc/systemd/system/mongod.service.d/override.conf
:
[Service]
LimitNOFILE=64000
3. Desactiva Transparent Huge Pages (THP)
THP puede perjudicar gravemente el rendimiento de MongoDB.
Verifica si está activado:
cat /sys/kernel/mm/transparent_hugepage/enabled
Desactiva temporalmente:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
Desactiva permanentemente: agrega al GRUB transparent_hugepage=never
4. Configura el commitIntervalMs
en entornos con mucha escritura
Si tu sistema tiene mucha escritura continua, puedes ajustar commitIntervalMs
para balancear durabilidad y rendimiento.
storage:
journal:
commitIntervalMs: 100
Métricas clave que debes monitorizar
opcounters.insert
,opcounters.query
: tasa de operacionesmem.resident
: uso de RAM por MongoDBconnections.current
: conexiones activaslocks.*
: bloqueos en colecciones o base de datoswiredTiger.cache.*
: uso del cache interno
¿Tienes dudas sobre tu caso específico? ¡Déjalas en los comentarios y te ayudamos!

Técnico informático especializado en Linux, redes y ciberseguridad. Apasionado del software libre, comparto tutoriales y guías prácticas en Linuxbasico para ayudarte a dominar el entorno Linux desde cero.