Overview
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.
バージョンの互換性
Lambda 統合のすべてのバージョンは各ネットワーク圧縮アルゴリズムをサポートしています。
次の表は、各アルゴリズムでサポートされる最小のMongoDB Serverバージョンを示しています。
ネットワーク圧縮を有効にする
MongoDB接続のネットワーク圧縮を有効にするには、次の手順を実行します。
必要な依存関係を使用してMongoDB PHP拡張機能をビルドします。拡張機能は、Lambda 統合ではなく、ネットワーク圧縮を処理します。
使用する圧縮アルゴリズムを指定します。
依存関係のインストール
Lambda 統合ではMongoDB PHP拡張機能とMongoDB Cドライバー を使用してネットワーク圧縮を実装するため、必要な依存関係を持つCドライバーをインストールする必要があります。これらの依存関係を表示するには、 Cドライバーのドキュメントの「 依存関係のインストール 」を参照してください。
圧縮アルゴリズムを指定する
MongoDBインスタンスへの接続の圧縮を有効にするには、アプリケーションの config/database.php構成ファイル内の connections 配列を更新します。圧縮アルゴリズムは、次のいずれかの方法で指定できます。
options配列にcompressorsオプションを含めるdsn接続文字列でcompressorsパラメータを使用する
Select the Options Array or Connection String tab to view an example that specifies all available compressors:
Zlib 圧縮レベルの設定
圧縮アルゴリズムの 1 つとして Zlib を指定する場合は、zlibCompressionLevel オプションを使用して圧縮レベルを指定できます。このオプションは -1 から 9 までの整数値を受け入れ、値は次の影響を持ちます。
-1: (デフォルト)Zlib はデフォルトの圧縮レベル(通常は
6)を使用します。0 :圧縮なし。
1 :速度は最も速く、圧縮は最小です。
9 :圧縮に最適ですが、速度は最も遅くなります。
Options Array タブまたは Connection Stringタブを選択すると、zlibCompressionLevel オプションを 1 に設定する例が表示されます。