2013-07-23 15 views
6

現時点では、2つのサーバー+ 1アービターを含むMongoDBレプリカセットを実行します。MongoDBシャーディングを開始するタイミング

そして、レプリカセットのデータベースに約150 GBのデータを保存します。

今私たちはシャー​​ディングをいつ始めるべきか考えています。もうシャーディングを始めることができないという点があるのか​​どうか疑問に思っているからです。

ハードディスク領域がなくなる前にシャーディングを開始しなければならないことは明らかですが、CPUが過負荷になったり、RAMが少なすぎるため全体的なパフォーマンスが低下します。

誰かからも、256GBのデータサイズに制限があり、その後シャーディングを開始できないと言われました。また、私は公式の文書http://docs.mongodb.org/manual/sharding/と "MongoDBの最終ガイド"を読んで、私はそれをprooveできませんでした。

あなたの経験から、あなたがシャーディングを始めるべきである限界がありますか?

答えて

6

リソース使用率が約60-70%に達したらシャーディングを開始します。これはハードディスクスペースとRAMの両方になります。実際には256GBの制限があります。http://docs.mongodb.org/manual/reference/limits/#Sharding%20Existing%20Collection%20Data%20Size

+0

「バグ」の方が多いので修正されていませんか? ''/' – Sammaye

+0

が固定されていることを読んで覚えています;)、コレクションが共有されると手動でマニュアルを入手すれば、1つのシャードあたり256GBを超えることができますか? – Dukeatcoding

+0

@Dukeatcodingシャードされたコレクションのサイズに制限はありません(シャード単位でも同様です)。これはあらかじめシャードされていますが、MongoDBはシャードを作成するときに256GB以上の問題がありますが、ちょっと覚えていないでしょう – Sammaye

6

読み取り/書き込みに基づく制限があります。その後のシャーディングは容量の増加、主に書き込み、レプリカの設定は読み込みに関連します。しかし、データの範囲(シャード・キー)に別々のサーバー(ノード)を使用すると、読み取りにも役立ちます。そのため、両方に対して効果があります。

たとえば、現在の作業セットで現在のサーバーメモリの40%しか使用できない可能性がありますが、その単一サーバーに送信される書き込み量のために、実際にIOのために速度の問題が発生する可能性があります。この時点でシャーディングを考慮に入れます。

本当に私は個人的に言いますが、この質問は重大な意見に基づいているため、単一のレプリカセットに対して費用対効果があるよりも操作のための容量が必要であると感じると破棄する必要があります。

私は、通常、クラスタ全体を取ることができる単一のレプリカ設定を知っていますが、予算の大きさによって異なります。コンピュータが大きくなるにつれて、コンピュータはより高価になります。

+0

あなたは多分、パフォーマンスにぴったりです。 1秒あたり数百回の書き込みがあるので、ロック時間はますます長くなりますが、これはシャーディングによっても改善されるはずです。 – Dukeatcoding

+0

@Dukeatcoding 100秒でロックの問題が発生していますか?うーん、私のノードは最大100万回の操作を2回まで処理できます...それぞれ – Sammaye

+0

@Dukeatcodingここでは最適化の問題があるかもしれませんが、それを破棄する前にデータベースの最適化を行うことをお勧めします。 – Sammaye

関連する問題