Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Comprimir el tráfico de la red

Los driver de MongoDB pueden comprimir los mensajes enviados y recibidos de MongoDB Server. Esto reduce la cantidad de transferencia de datos para cada operación. La compresión puede mejorar el rendimiento en redes restringidas y reducir los costos de transferencia de datos asociados con la ejecución de MongoDB Atlas.

La compresión opera a nivel de protocolo de red, por lo que se aplica a todas las operaciones que realiza su aplicación. Si especifica más de un algoritmo, el controlador utilizará el primero de la lista que también sea compatible con MongoDB Server.

Los drivers de MongoDB admiten los siguientes algoritmos de compresión:

MongoDB Atlas cobra por los datos transferidos entre regiones de la nube, proveedores de la nube y entre su infraestructura y MongoDB Atlas. La compresión de red reduce la cantidad de datos que su aplicación envía y recibe, lo que puede disminuir estos costos de transferencia de datos. Para obtener más información sobre los precios, consulte Costos de transferencia de datos.

La compresión de red también ofrece ventajas en cuanto a productividad. Los mensajes comprimidos tardan menos en transferirse a través de la red, lo que puede mejorar los tiempos de respuesta de su aplicación. Además, la compresión reduce el ancho de banda que utiliza el tráfico de MongoDB, lo que deja más ancho de banda disponible para otras aplicaciones en la misma red.

Cuando elijas un algoritmo de compresión, considera las siguientes directrices:

  • Utilice Zstandard para lograr un equilibrio entre la eficiencia de compresión y el uso de recursos. Zstandard es una buena opción predeterminada para la mayoría de las aplicaciones.

  • Utilice Snappy para aplicaciones sensibles a la latencia que requieren una sobrecarga computacional mínima.

  • Utilice Zlib para una amplia compatibilidad con los controladores y entornos de MongoDB.

Tip

Monitorear el uso de la CPU

La compresión sacrifica ancho de banda de red a cambio de un mayor uso de la CPU. Tras habilitar la compresión de red, supervise el uso de la CPU de su aplicación para confirmar que esta compensación beneficia su carga de trabajo. Para obtener más información sobre estas compensaciones, consulte la entrada del blog «Uso de la CPU y compresión de red en MongoDB».

La librería PHP utiliza la extensión PHP para comprimir el tráfico de red. La siguiente tabla enumera la extensión mínima de PHP y la versión de MongoDB Server necesarias para cada algoritmo de compresión:

Algoritmo de compresión
Versión mínima de extensión
Versión mínima del servidor

1.4.0

4.2

1.4.0

4.2

1.8.0

4.2

Para habilitar la compresión de red para su conexión a MongoDB, instale las dependencias necesarias y especifique los algoritmos de compresión que desea utilizar.

Debido a que la extensión PHP utiliza el MongoDB C driver para implementar la compresión de red, debe instalar las dependencias necesarias para el C driver. Para ver estas dependencias, consulte Instalar dependencias en la documentación del C driver.

Para habilitar la compresión en la conexión con tu implementación de MongoDB, utiliza la opción de conexión compressors y especifica los algoritmos de compresión que deseas utilizar. Puedes hacerlo de dos maneras:

  • Pase los algoritmos como argumento al constructor MongoDB\Client.

  • Especificar los algoritmos en tu cadena de conexión.

El siguiente ejemplo muestra cómo especificar Snappy, Zlib y Zstandard como los compresores para una conexión. Seleccione la pestaña MongoDB\Client o Connection URI para ver el código correspondiente:

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
['compressors' => 'snappy,zstd,zlib'],
);
$uri = 'mongodb://<hostname>:<port>/?compressors=snappy,zstd,zlib';
$client = new MongoDB\Client($uri);

Si especifica zlib como uno de sus algoritmos de compresión, también puede utilizar la opción zlibCompressionLevel para especificar un nivel de compresión. Esta opción acepta un valor entero entre -1 y 9:

  • -1: (por defecto). zlib utiliza su nivel de compresión por defecto (normalmente 6).

  • 0: Sin compresión.

  • 1: La velocidad más rápida, pero la compresión más baja.

  • 9: Mejor compresión pero la velocidad más lenta.

El siguiente ejemplo especifica el zlib algoritmo de compresión y un zlibCompressionLevel valor de 1. Selecciona la pestaña MongoDB\Client o Connection URI para ver el código correspondiente:

$uriOptions = [
'compressors' => 'zlib',
'zlibCompressionLevel' => 1,
];
$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
$uriOptions,
);
$uri = 'mongodb://<hostname>:<port>/?compressors=zlib&zlibCompressionLevel=1';
$client = new MongoDB\Client($uri);

Para obtener más información sobre la clase MongoDB\Client, consulta MongoDB\Client en la documentación de la API de la librería.

Para ver una lista completa de opciones URI que puede pasar a un MongoDB\Client, consulte la MongoDB\Driver\Manager::__construct parameters en la documentación de la API de extensión.