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
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マニュアルの 本番ノート を参照してください。