Problema | Solución |
|---|---|
Tiempos de operación lentos del lado de la aplicación que no se reflejan en la base de datos registros del servidor o el panel en tiempo real. | Usar Establecer Por ejemplo: si un nodo tiene una latencia de 10000 milisegundos, establecer |
Un firewall mal configurado cierra una conexión de socket de manera incorrecta y el controlador no puede detectar que la conexión se cerró de forma inapropiada. | Utilice Configurar |
Los registros del servidor o el panel en tiempo real muestran que la aplicación dedica demasiado tiempo a establecer nuevas conexiones. | No hay suficientes conexiones disponibles al inicio del sistema. Asignar las conexiones en el pool configurando Establecer minPoolSize al número de conexiones que se desea que estén disponibles al inicio. La instancia de |
La carga en la base de datos es baja y hay un pequeño número de conexiones activas en todo momento. La aplicación realiza menos operaciones a la vez de lo esperado. | Aumentar maxPoolSize, o aumentar el número de hilos activos en la aplicación o en el framework que se está utilizando. |
El uso de la CPU de la base de datos es más alto de lo esperado. Los registros del servidor o el panel en tiempo real muestran más intentos de conexión de lo esperado. | Se debe disminuir el maxPoolSize o reducir el número de subprocesos en la aplicación. Esto puede reducir los tiempos de carga y de respuesta. |
Advertencia
No utilizar socketTimeoutMS para evitar operaciones de servidor prolongadas. En su lugar, utilizar maxTimeMS() con queries para que el servidor pueda cancelar operaciones de larga duración.
Calcule el número máximo de conexiones
Calcular el uso para determinar el número de operaciones en ejecución para cada conexión.
Considera cuatro servidores de aplicación conectándose a un Set de réplicas con tres miembros. En este escenario, cada uno de los cuatro servidores de aplicaciones crea un pool de conexiones para cada miembro del Set de réplicas.
Calcula el número máximo de conexiones que se abren por cada servidor de aplicaciones multiplicando maxPoolSize por el número de miembros.
Calcula las conexiones salientes desde una aplicación a un set de réplicas de tres nodos:
100 (maxPoolSize por defecto 100) x 3 (miembros del set de réplicas) = 300 (conexiones salientes de la aplicación).
Calcula las conexiones entrantes desde cuatro servidores de aplicación a un Set de réplicas:
100 (maxPoolSize por defecto 100) x 4 (servidores de aplicaciones) = 400 (conexiones entrantes a cada mongod).