web-dev-qa-db-ja.com

journalCompressorをnoneに変更します-デフォルトのスナッピーではありません

ObjectRocketサポート からの引用

こんにちは、フョードル! journalCompressor設定は、特にジャーナルファイルに関連しています。ジャーナルを圧縮すると、WiredTigerメモリキャッシュからディスクにデータをフラッシュするときに追加の遅延が発生するため、通常、ジャーナルは圧縮されません。このレイテンシーは、書き込みの問題にまで浸透します。 journalCompressor noneは、構成のデフォルト値です。

ObjectRocketはDBaaSについて何かを理解しているようです

ObjectRocket は、テキサス州オースティンを拠点とするクラウドデータベース(DBaaS)の会社で、MongoDBやRedisなどのNoSQLデータストアを専門としています。 2013年に、それらはRackspaceに買収されました

journalCompressorがきびきびしていないことについてどう思いますか?これはDBaaSプロバイダーにとって有効な構成であり、ほとんどのユースケースに最適ですか?

storage:
   dbPath: "/data/mongodb"
   journal:
       enabled: true
   engine: "wiredTiger"
   wiredTiger:
       engineConfig:
           journalCompressor: none
           directoryForIndexes: "/indexes/mongodb/"
       collectionConfig:
           blockCompressor: snappy
       indexConfig:
           prefixCompression: true
1
Ivanov

journalCompressorがきびきびしていないことについてどう思いますか?これはDBaaSプロバイダーにとって有効な構成であり、ほとんどのユースケースに最適ですか?

一般に、バリエーションが一般的なワークロードに有益であることが証明されない限り(つまり、実際のテストと測定を通じて)、MongoDB設定をデフォルトのままにします。通常、スナッピーな圧縮/解凍には多くのオーバーヘッドがなく、I/OはCPUよりも多くのリソース制約になります。デフォルト設定は「ほとんどのユースケースに最適」であることが意図されており、MongoDBデプロイメントおよび継続的インテグレーションテストでより広くテスト/使用されています。

WiredTigerジャーナルファイルのサイズ制限は100MBです。ジャーナルファイルのサイズ制限に達すると、WiredTigerは新しいジャーナルファイルを作成し、以前のジャーナルファイルをディスクに同期します。デフォルトのjournalCompressor設定のsnappyを使用すると、個々のジャーナルファイルに圧縮なしの場合よりも多くのデータを含めることができます。圧縮しないと、より多くのジャーナルファイルが作成され、より多くのジャーナルI/Oが発生します。

CPUとI/Oの使用量の適切なトレードオフは、デプロイメントとワークロードによって異なります。デプロイメントにCPUに余裕がある場合は、zlib圧縮のテストを検討することもできます(より良い圧縮が期待されますが、CPU使用率が高くなります)。

ジャーナルとdbPath内のデータファイル間のI/O競合が心配な場合、またはジャーナルの書き込みがランダムではなくシーケンシャルである場合に微調整を行いたい場合は、別のオプションとして journal directory 別のマウントポイントに。このアプローチはバックアップ戦略に影響を与える可能性があります(たとえば、ファイルシステムスナップショットに依存している場合)が、すでに directoryForIndexes オプションを使用しているため、この警告をすでに認識していると思います。

本番デプロイメントの構成に関するその他の提案については、MongoDBマニュアルの 本番ノート を参照してください。

1
Stennie