Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.

Comprimir tráfego de rede

Drivers do MongoDB podem compactar as mensagens enviadas para e recebidas do MongoDB Server. Isso reduz a quantidade de transferência de dados para cada operação. A compactação pode melhorar o desempenho em redes restritas e reduzir o custo de transferência de dados associado à execução do MongoDB Atlas.

A compactação opera no nível do wire protocol, portanto, aplica-se a todas as operações que seu aplicativo executa. Se você especificar mais de um algoritmo, o driver usará o primeiro algoritmo da sua lista que o MongoDB Server também suporta.

Os drivers do MongoDB suportam os seguintes algoritmos de compactação:

O MongoDB Atlas cobra pela transferência de dados entre regiões de nuvem, provedores de nuvem e entre sua infraestrutura e o MongoDB Atlas. A compactação de rede reduz a quantidade de dados que seu aplicativo envia e recebe, o que pode diminuir esses custos de transferência de dados. Para saber mais sobre preços, consulte Custos de transferência de dados.

A compactação de rede também traz benefícios de produtividade. Mensagens compactadas levam menos tempo para serem transferidas pela rede, o que pode melhorar os tempos de resposta do seu aplicativo. A compactação também reduz a largura de banda que o tráfego do MongoDB utiliza, o que deixa mais largura de banda disponível para outros aplicativos na mesma rede.

Ao escolher um algoritmo de compactação, considere as seguintes diretrizes:

  • Use o Zstandard para um equilíbrio entre eficiência de compactação e uso de recursos. O Zstandard é uma boa escolha padrão para a maioria dos aplicativos.

  • Use Snappy para aplicativos sensíveis à latência que exigem sobrecarga computacional mínima.

  • Use o zlib para ampla compatibilidade entre drivers e ambientes do MongoDB.

Dica

Monitorar o uso da CPU

A compactação troca largura de banda de rede por uso de CPU. Depois de ativar a compactação de rede, monitore a utilização da CPU do seu aplicativo para confirmar se a compensação beneficia sua carga de trabalho. Para aprender mais sobre essas compensações, consulte a publicação no blog Utilização de CPU e compactação de rede no MongoDB.

A biblioteca PHP usa a extensão PHP para compactar o tráfego de rede. A tabela a seguir lista a extensão PHP mínima e a versão do MongoDB Server necessárias para cada algoritmo de compactação:

Algoritmo de compactação
Versão mínima da extensão
Versão mínima do servidor

1.4.0

4.2

1.4.0

4.2

1.8.0

4.2

Para habilitar a compactação de rede para sua conexão com o MongoDB, instale as dependências necessárias e especifique os algoritmo de compactação que você deseja usar.

Como a extensão PHP usa o driver C do MongoDB para implementar a compactação de rede, você deve instalar as dependências necessárias para o driver C. Para visualizar essas dependências, consulte Instalar dependências na documentação do driver C.

Para habilitar a compressão para a conexão com sua implantação do MongoDB , use a opção de conexão compressors e especifique os algoritmos de compressão que deseja usar. Você pode fazer isso de duas maneiras:

  • Passe os algoritmos como um argumento para o construtor MongoDB\Client .

  • Especifique os algoritmos em sua string de conexão.

O exemplo a seguir mostra como especificar Snappy, zlib e Zstandard como os compressores para uma conexão. Selecione a aba MongoDB\Client ou Connection URI para ver o código correspondente:

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

Se você especificar o Zlib como um dos seus algoritmos de compactação, você também pode usar a opção zlibCompressionLevel para especificar um nível de compactação. Esta opção aceita um valor inteiro entre -1 e 9:

  • -1: (padrão). zlib usa seu nível de compressão padrão (geralmente 6).

  • 0: sem compressão.

  • 1: velocidade mais rápida, mas menor compressão.

  • 9: a melhor compactação, mas a velocidade mais lenta.

O exemplo seguinte especifica o algoritmo de compressão zlib e um valor zlibCompressionLevel de 1. Selecione a aba MongoDB\Client ou Connection URI para ver o código correspondente:

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

Para saber mais sobre a classe MongoDB\Client , consulte MongoDB\Client na documentação da API da biblioteca.

Para visualizar uma lista completa de opções de URI que você pode passar para um MongoDB\Client, consulte o MongoDB\Driver\Manager::__construct na documentação da API de extensão.