2012-07-23 13 views
5

新しいプロジェクトにmongodbを使用したいと思います。問題は、mongo pre-alocateファイルを使用することです。mongo db --smallfilesスイッチの欠点

各データファイルは特定のサイズに事前に割り当てられています。これは、ファイルシステムの断片化を防ぐために行われます。データベースの最初のファイル名は.0、.1など.0は64MB、.1 128MBなど、最大2GBです。ファイルのサイズが2GBに達すると、それに続く各ファイルも2GBになります。従って、存在する最後のデータファイルが例えば1GBである場合、そのファイルは最近作成された場合には90%空である可能性がある。ここから

http://www.mongodb.org/display/DOCS/Excessive+Disk+Space

そしてそれで何も多くの2GBのファイルを持っている通常の。これは

512メガバイト

には--smallfiles =>私が知りたいの小さい初期ファイルのサイズ(16メガバイト)と最大サイズ(512メガバイト)

を使用するファイルを制限するために、--smallfilesスイッチがありますsmallfilesを使うのは生産には良いですか?その欠点は何ですか?

nopreallocスイッチがありますが、生産には不向きです。小さなファイルについての注意はありません。

答えて

6

大量のデータベースを作成する場合は、通常は小さなファイルしか使用しません。少数のデータベースでしか動作しない場合、混乱するほどのデータを保存できません。

多くのDBS(実際には小さなファイルの恩恵を受けている)のお客様には、パフォーマンス上の問題はありませんでした。彼らの活動レベルは通常、他のインストールと比べてやや低いです。モンゴが何をしているかに基づいて、いくつかの操作をやや遅くするかもしれませんが、気づかないと思います。

+2

もう1つの注意点は、--smallfilesがアービターでは良いことです。アービターは起動時にたくさんのファイル(ジャーナルなど)をあらかじめ割り当てておくことがよくあります。それが仲裁人であることは分かっています。 –

+2

@AdamC良い点ですが、アービターのジャーナリング(nojournal = true)をオンにすることもできます。 – Mattias

1

さらに、AWSクラウドで動作し、SSDでm3.smallインスタンスを使用する場合は、4GBのストレージに制限されます。このオプションを設定すると、小さなSSDでバックアップされたmongodbノードを持つことができます。小規模な作業には十分でしょう

+0

私のブログやフォーラムのスペースに問題があり、20GBのうち3GBの空き容量があるので、smallfilesは良いアイデアだと思っています。小さなブログやフォーラムでsmallfilesを使うと思って、あなたが成長するにつれてサイト – wiak