AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

ネットワーク トラフィックを圧縮

MongoDBドライバーは、 MongoDB Serverとの間で送受信されるメッセージを圧縮できます。これにより、各操作で転送されるデータ量が減ります。圧縮により、制約されたネットワークのパフォーマンスが向上し、 MongoDB Atlas の実行中に関連するデータ転送コストが削減されます。

圧縮はワイヤプロトコルレベルで動作するため、アプリケーションが実行するすべての操作に適用されます。複数のアルゴリズムを指定した場合 、ドライバーはMongoDB Serverもサポートしているリスト内の最初のアルゴリズムを使用します。

MongoDBドライバーは次の圧縮アルゴリズムをサポートしています。

MongoDB Atlas charges for data transferred across cloud regions, cloud providers, and between your infrastructure and MongoDB Atlas. Network compression reduces the amount of data that your application sends and receives, which can lower these data transfer costs. To learn more about pricing, see Data Transfer Costs.

ネットワーク圧縮には、効率的な利点も得られます。圧縮されたメッセージはネットワーク間での転送時間が短縮されるため、アプリケーションの応答時間を向上させることができます。圧縮により、 MongoDBトラフィックが使用する帯域幅も削減されるため、同じネットワーク上の他のアプリケーションで使用できる帯域幅が増えます。

圧縮アルゴリズムを選択する場合は、次のガイドラインを考慮してください。

  • 圧縮効率とリソース使用量のバランスを取るには、Zstandard を使用します。 Zstandard は、ほとんどのアプリケーションでのデフォルトの選択に適しています。

  • 最小限の計算オーバーヘッドを必要とするレイテンシの影響を受けやすいアプリケーションには、 Snappy を使用してください。

  • MongoDBドライバーと環境間での広範な互換性を実現するには、Zlib を使用してください。

Tip

CPU 使用率の監視

Compression trades network bandwidth for CPU usage. After you enable network compression, monitor your application's CPU utilization to confirm that the trade-off benefits your workload. To learn more about these trade-offs, see the CPU Utilization and Network Compression in MongoDB blog post.

次の表は、各 圧縮アルゴリズムでサポートされる最小のドライバーとMongoDB Server のバージョンを示しています。

圧縮アルゴリズム
ドライバーの最小バージョン
サーバーの最小バージョン

1.7

4.2

1.7

4.2

1.15

4.2

MongoDB接続のネットワーク圧縮を有効にするには、必要な依存関係を含むCドライバーをビルドし、使用する圧縮アルゴリズムを指定します。

次の表は、各アルゴリズムと、必要な依存関係(存在する場合)を示しています。

Compression Algorithm
依存

Snappy

Snappy ライブラリをインストールします。インストール手順については、 snappy GitHubリポジトリを参照してください。

Zlib

なし。ドライバーはデフォルトで Zlib をバンドルしています。

Zstandard

Zstandard ライブラリをインストールします。インストール手順については、「 zstd GitHubリポジトリ 」を参照してください。

次のいずれかの方法でアルゴリズムを指定することで、 MongoDBインスタンスへの接続の圧縮を有効にできます。

  • 接続文字列に compressors パラメータを追加する

  • mongoc_uri_t 構造体にコンプレッサーを設定する

利用可能なすべてのコンプレッサーを指定する例を表示するには、Connection String タブまたは URI Optionタブを選択します。

client = mongoc_client_new("mongodb://<db_username>:<db_password>@<hostname>/?compressors=snappy,zlib,zstd");
uri = mongoc_uri_new("mongodb://localhost:27017");
mongoc_uri_set_compressors(uri, "snappy,zlib,zstd");
client = mongoc_client_new_from_uri(uri);

Zlibアルゴリズムを使用する場合、-1 から 9 までの圧縮レベルを指定できます。レベルが低いほど圧縮速度が向上しますが、圧縮率は低くなります。また、レベルが高い場合は、圧縮率が高くなりますが、圧縮は遅くなります。

Connection StringURI Optionタブを選択すると、zlib コンプレッサー の圧縮レベルを指定する例を表示できます。

client = mongoc_client_new("mongodb://<db_username>:<db_password>@<hostname>/?compressors=zlib&zlibCompressionLevel=<zlib_compression_level");
uri = mongoc_uri_new("mongodb://localhost:27017");
mongoc_uri_set_option_as_int32(uri, MONGOC_URI_ZLIBCOMPRESSIONLEVEL, <zlib-compression-level>);
client = mongoc_client_new_from_uri(uri);

このページで使用される型と関数の詳細については、次のAPIドキュメントを参照してください。