Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Ajuste de la configuración del pool de conexiones

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.

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 socketTimeoutMS para asegurarse de que los sockets estén siempre cerrados.

Configurar socketTimeoutMS a dos o tres veces la duración de la operación más lenta que ejecuta el controlador.

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 minPoolSize.

Establecer minPoolSize al número de conexiones que se desea que estén disponibles al inicio.

La instancia de MongoClient garantiza que el número de conexiones exista en todo momento.

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.

Calcular el uso para determinar el número de operaciones en ejecución para cada conexión.

Considere un servidor de aplicaciones que se conecta a un conjunto de réplicas con tres miembros. En este escenario, el servidor de aplicaciones crea un grupo de conexiones para cada miembro del conjunto de réplicas. También debe considerar las conexiones que cada cliente, en cada nodo, crea para la monitorización.

El número máximo de conexiones que abre el servidor de aplicaciones se basa en la maxPoolSize, el número de nodos y las conexiones de supervisión y RTT de cada nodo.

Por ejemplo, se puede calcular las conexiones salientes de una aplicación a un set de réplicas de tres nodos con la siguiente fórmula:

(
**100** {:urioption:`maxPoolSize`}
+ **1** monitoring connection
+ **1** RTT connection
)
* 3 replica set members
= **306** outgoing connections from the application.

Volver

Pool de conexiones

En esta página