Conexión
PHP Manual

Agrupación de conexiones (versión 1.2.0-1.2.12 *solamente*)

Nota:

Esta sección ya no tiene relevancia a partir de la versión 1.3.0 del controlador y únicamente sirve como información histórica de cómo solía funcionar la agrupación.

Las últimas versiones del controlador ya no posee el concepto de agrupación, por lo que solamente mantendrá una conexión por proceso, para cada tipo de conexión (ReplicaSet/standalone/mongos), para cada combinación de credenciales.

La creación de conexiones es uno de las cosas más pesada que el driver realiza. Puede tomar miles de milisegundos establecer una conexión correcta, incluso en una red rápida. Por lo tanto, el driver intentará reducir el número de nuevas conexiones creadas mediante la reutilización del pool de conexiones.

Cuando un usuario crea una nueva instancia de MongoClient, todas las conexiones necesarias serán tomadas por el pool (un conjunto de replicas de conexiones pueden requerir conexiones múltiples). Cuando la instancia de MongoClient se sale del ámbito, las conexiones se retornarán al pool. Cuando el proceso en PHP termine, todas las conexiones en el pools serán cerrados.

"¿Por qué tengo tantas conexiones abiertas?"

Las conexiones en el pool pueden generar un gran número de estas. Esto es normal y, con un poco de aritmética, es posible averiguar la cantidad de conexiones que se crearán. Hay tres factores que determinan el número total de conexiones:

Las tres variables de arriba se pueen multiplicar juntas para obtener el número máximo de conexiones esperadas: connections_per_pool * pools_per_process * processes. Observe que connections_per_pool puede ser diferente para diferentes agrupaciones, por lo que connections_per_pool debería ser el máximo.

Por ejemplo, supongamos que se recibe 30 conexiones por pool, 10 pools por procesos en PHP, y 128 procesos PHP. Entonces podemos esperar 38400 conexiones desde esta máquina. Por lo tanto, debemos establecer el límite del descriptor del fichero para ser lo suficientemente alto para manejar todas las conexiones o pueda ejecutarse los ficheros de descriptores.

See MongoPool para obtener más información sobre la conexión pooling.


Conexión
PHP Manual