4

3 つのシステムに分割されたクラスターがあります。挿入中にエラーメッセージが表示されます:

cant map file memory-mongo requires 64 bit build for larger datasets

32 ビット マシンのサイズは 2 GB に制限されていることを知っています。2つ質問があります。

  1. 2 GB の制限は 1 つのシステム用であるため、私のシャーディングは 3 つのシステムで行われるため、合計データは 6 GB になります。それで、それは2 GBまたは6 GBだけですか?
  2. シャーディングが適切に行われている間、3 つのシャードされたシステムすべてにデータを分散しているにもかかわらず、すべてのデータが単一のシステムに保存されますか?

シャーディングは、データサイズの上限を引き上げるのに何らかの役割を果たしますか? チャンク サイズはパフォーマンスに重要な役割を果たしますか?

4

2 に答える 2

2

おそらく64ビットを実行できない開発マシンで実行する以外に、32ビットのMongoDBを使用することはお勧めしません制限に達すると、ファイルは使用できなくなります。

ドキュメントには、「本番環境では 64 ビットを使用してください。これは重要です。mmap サイズの制限 (正確な制限はさまざまですが、2GB 未満) に達すると、データベースに書き込むことができなくなります (ディスクがいっぱいの状態に似ています)。」

于 2012-11-27T08:29:42.170 に答える
0

シャーディングとは、複数のノード間でデータ セットをスケールアウトすることです。そのため、質問への回答として、データ セットの可能なサイズを増やしました。ただし、名前空間とインデックスもスペースを占有することに注意してください。

あなたのmongosがどこにあるかを指定していませんか??? mongod-aまたはからのエラーはどこに表示されますmongosか? だと思いmongodます。チャンクの事前分割を検討する必要があると思います- http://docs.mongodb.org/manual/administration/sharding/#splitting-chunks。これは、すべてのデータが 1 つに移動していることを示しているようですmongod

がある場合mongos、何がsh.status()返されますか? チャンクは全体に分散していmongod'sますか?

テストでは、チャンク サイズを 1 MB にすることをお勧めします。本番環境では、デフォルトを必要としない非常に重要な理由がなく、自分が何をしているのかを本当に理解している場合を除き、デフォルトの 64MB を使用することをお勧めします。チャンク サイズが小さすぎると、分割を頻繁に実行することになります。

于 2012-11-27T09:58:46.800 に答える