0

内容 : リクエスト配信の問題とシステムのトラブルについて。

最近、実稼働サーバーで MongoDBSharding を構成し、詳細を以下に示します。

  1. mongo シャーディング構成の目的で、3 台の個別のマシンを使用しました。

    • 最初のマシン - (shard1 プライマリ + shard2 セカンダリ + shard2 アービター) + 構成
    • 2 番目のマシン - (shard2 プライマリ + shard1 セカンダリ + shard1 アービター) + 構成
    • 3 台目のマシン - 構成
  2. 私はNODE.JSサーバー以上のものを持っています。したがって、各NODEサーバーでチャンクサイズ5 MBのmongosを開始しました(たとえば、各NODEサーバーで6つのNODEサーバーと6つのmongosインスタントを取得しました)。

  3. mongos でシャーディング設定を構成した後、データベースを 1 つ作成し、それが "shard2" でプライマリとして自動的に取得されました。

しかし、私の問題は、NODE.JS から取得している両方のシャーディングにリクエストを分散できないことでした。これは、shard2 がそのデータベースのプライマリとして自動的に取得されるためです。したがって、すべてのリクエストは shard2 インスタントのみにヒットします。そのため、2 台目のマシンが負荷の問題で問題を抱え、CPU 使用率が高くなります。

この種の問題を修正するための意見と提案を共有してください。

ダイアグラム

クライアント -> NODE.JS サーバー -> MONGODB [最初のマシン + 2 番目のマシン + 3 番目のマシン]

4

2 に答える 2

0

シャードキーを指定しましたか?

于 2011-11-30T01:56:12.540 に答える
0

これは予想されます。データの分割が開始されるまで、すべてのデータはデフォルトでデータベースのプライマリに送られます。分割されると、プライマリに移動するのではなく、正しいシャードに転送されますが、分割操作はすでに行われている必要があります。事前分割することもできます。http://www.mongodb.org/display/DOCS/Splitting+Shard+Chunksを参照してください

于 2011-11-30T14:34:26.057 に答える