2011-11-29 84 views
0

關於:請求分配問題和系統問題。MongoSharding - 請求分配

最近,我在生產服務器中配置了MongoDBSharding,並在下面給出了詳細信息。

  1. 我採取了3個單獨的機器爲mongo sharding配置目的。

    • 首先機 - (shard1初級+ shard2次級+ shard2 arbitor)+配置
    • 二機 - (shard2初級+ shard1次級+ shard1 arbitor)+配置
    • 第三機 - 配置
  2. 我有更多的NODE.JS服務器。所以我開始在每個NODE服務器中使用塊大小爲5MB的mongos(例如,在每個NODE服務器中立即採用6個NODE服務器和6個mongos)。

  3. 當我在mongos中配置了分片設置之後,創建了一個數據庫,並且已經以「shard2」作爲主數據庫自動獲取。

但我的問題是我不能能夠分配請求兩分片,我是從Node.js的獲得,因爲它的自動拍攝shard2作爲主要爲該數據庫。因此,所有請求都只能進入shard2即時。所以第二臺機器負載問題和獲得更多的CPU使用問題。

請分享您的意見和建議,以解決此類問題。

CLIENT - > Node.js的服務器 - > MongoDB的[第一臺機器+第二臺+第三臺機器]

+1

有什麼方法可以修改您的問題以更清楚地描述問題? –

+0

你確定有足夠的數據嗎?即使是5MB的小塊大小(請記住,這只是10gen推薦的1/13,我會堅持默認的,除非你確定你需要這個值),你至少必須擁有在該集合中有50MB數據直到分片開始AFAIK。 – mnemosyn

回答

0

你指定一個shard key

+0

我在該數據庫的每個集合中指定了一個分片鍵。但每個集合都沒有記錄和空集合。因爲我們已經實現了一個新功能,所以基於用戶事務將來會填充該集合。 – Kumaran

0

這是預期的。所有數據默認都會轉到數據庫的主數據庫,直到它開始分割數據爲止。一旦它被分割,它將被引導到正確的碎片而不是去主要,但拆分操作必須已經發生。你也可以預先分割。請參閱http://www.mongodb.org/display/DOCS/Splitting+Shard+Chunks