MongoDB硬體及開發標準規範

來源:互聯網
上載者:User

標籤:擴容   建立   壓縮   表示   千兆   容量   名稱   首碼   cell   

 

 

 

 

 

大資料平台部

營運研發組

MongoDB硬體及開發標準規範

 

 

 

 

 

 

 

說明:

 

無特殊情況,均以此文檔為參考檔案搭建,如有特殊情況,需與營運研發組和開發組商議後變更。

 

 

 

 

 

 

 

 

MongoDB

 

 

 

 

 

標     題硬體標準及研發規範 

 

 

 

 

目  錄

 

第1章MongoDB配置標準規範.................................................................................. 1

1.1           MongoDB版本選擇................................................................................... 1

1.1.1 穩定版本................................................................................................. 1

1.2           研發資料集群規劃...................................................................................... 1

1.2.1 標準叢集(repl set複製集)................................................................ 1

部署過程見《MongoDB高可用叢集C生產部署文檔V1.0》................... 1

1.2.2 標準叢集(repl set複製集+sharding分區)....................................... 1

部署過程見《MongoDB高可用叢集A生產部署文檔V1.1》.................. 2

1.2.3 超大規模叢集(repl set複製集+sharding分區)............................... 2

部署過程見《MongoDB高可用叢集B生產部署文檔V1.0》................... 2

1.3           大資料海量資料集群規劃.......................................................................... 2

1.2.1 海量資料標準叢集(repl set複製集)................................................ 2

部署過程見《MongoDB高可用叢集C生產部署文檔V1.0》................... 2

1.2.2 海量資料標準叢集(repl set複製集+sharding分區)....................... 2

部署過程見《MongoDB高可用叢集A生產部署文檔V1.1》.................. 2

1.2.3 海量資料超大規模叢集(repl set複製集+sharding分區)............... 3

部署過程見《MongoDB高可用叢集B生產部署文檔V1.0》................... 3

1.4           主機配置標準化參數.................................................................................. 3

1.5           基礎卷分配原則.......................................................................................... 6

1.6           卷監控閾值要求.......................................................................................... 7

第2章 MongoDB研發規範.......................................................................................... 8

2.1 庫設計................................................................................................................ 8

2.1.1 mongodb庫設計..................................................................................... 8

2.2 集合設計............................................................................................................ 8

2.2.1 MongoDB集合設計............................................................................... 8

2.3 文檔設計............................................................................................................ 9

2.3.1 MongoDB文檔設計............................................................................... 9

2.4 索引設計............................................................................................................ 9

2.4.1 MongoDB索引設計............................................................................... 9

2.4 索引設計.......................................................................................................... 10

 


 

第1章 MongoDB配置標準規範

 

1.1 MongoDB版本選擇

1.1.1 穩定版本

預設新裝資料庫使用MongoDB 3.X 社區版(具體詳情請查看如下表格),已經使用且資料量大和已有無法改造升級的系統除外。

版本

建議

3.2.10

見標準安裝包檔案夾內

3.4.X

待測試調研

 

1.2 叢集規劃

1.2.1 標準叢集(repl set複製集)

部署過程見《MongoDB高可用叢集A生產部署文檔V1.0》

l 叢集節點: 6節點(1 primary +4 secondry + 1 仲裁)

l 主機配置:Core64 , 256G 記憶體  (按需申請資源見第三章計算標準) 

l 硬碟配置:優先SSD/HDD  2T  RAID-10

l 容量和擴容規劃:單節點記憶體使用量率控制在70%,叢集LUN 總量達到2T以上時規劃新的大庫叢集或者擴容相應硬體

 

1.2.2 標準叢集(repl set複製集+sharding分區)

部署過程見《MongoDB高可用叢集B生產部署文檔V1.1》

l 叢集節點: 3節點

l 主機配置:Core64 , 128G 記憶體   

l 硬碟配置:優先SSD/HDD  5T  RAID-10  (使用1TB MLC SSD 組裝)

l 容量和擴容規劃:單節點記憶體使用量率控制在70%,叢集LUN 總量達到5T以上時規劃新的大庫叢集或者相應硬體

 

1.2.3 超大規模叢集(repl set複製集+sharding分區)

部署過程見《MongoDB高可用叢集C生產部署文檔V1.0》

l 叢集節點: 7節點

l 主機配置:Core64, 128G 記憶體

l 硬碟配置:優先SSD/HDD   10T  RAID-10

l 容量和擴容規劃:單節點記憶體使用量率控制在70%,叢集LUN 總量達到10T以上時規劃新的大庫叢集或者相應硬體

1.3 基礎卷分配原則

卷類型

卷名

初始大小G

儲存類型

用途

其他說明

軟體卷

/app/mongodb

30

本地

MongoDB軟體

本機所有資料庫共用

資料卷

/data/mongodb/*/data

 

其中*代表每個執行個體的檔案名稱

根據要求

本地

資料庫資料

共用給叢集內所有主機

記錄磁碟區

/data/mongodb/*/log

其中*代表每個執行個體的檔案名稱

根據要求

本地

資料庫日誌資料

共用給叢集內所有主機

備份卷

/mongodb_backup/

500

本地碟

接DP備份

本機所有資料庫共用當前僅在容災機房有要求

 

1.4 卷監控閾值要求

卷類型

卷名

Warning

Critical

軟體卷

/app/mongodb

80%

85%

資料卷

/data/mongodb/*/data

80%

85%

記錄磁碟區

/data/mongodb/*/log

80%

85%

備份卷

/mongodb_backup/

80%

85%

 

 

第2章 MongoDB研發規範

 

2.1 庫設計

2.1.1 mongodb庫設計

l mongodb資料庫命名規範:db_xxxx
禁止使用任何 " _ "(底線)外的特殊字元

l 庫名全部小寫,禁止使用任何_以外的特殊字元,禁止使用數字打頭的庫名,如:123_abc

l 庫以檔案夾的形式存在,使用特殊字元或其它不規範的命名方式會導致命名混亂 
資料庫名最多為64字元

l 在建立新的庫前應盡量評估該庫的體積、QPS等,提前與DBA討論是應該建立一個庫還是專門為該庫建立一個新的叢集

l 不可為空字串(” “)

l 不能以$開頭

l 不能包含.(點號)和Null 字元串

l 資料庫名區分大小寫(建議資料庫名全部使用小寫)

l 資料庫名最長為64個位元組

l 不要與系統保留的資料庫名相同,這寫資料庫包括:admin,local,config等

2.2 集合設計

2.2.1 MongoDB集合設計

l mongodb集合命名規範:t_xxxx

l 集合名全部小寫,禁止使用任何_以外的特殊字元,禁止使用數字打頭的集合名,如:123_abc,禁止system打頭

l system是系統集合首碼 
集合名稱最多為64字元 
為了避免庫級鎖帶來的問題,應盡量對寫入較大的集合使用“單庫單集合”的結構,所以對於新增業務應盡量建立新庫,而不是在現有庫中建立新集合

l 一個庫中寫入較大的集合會影響其它集合的讀寫效能 
如果評估單集合資料量較大,可以將一個大表拆分為多個小表,然後將每一個小表存放在獨立的庫中,由於MongoDB是庫級鎖,因此這樣做可以大幅減少並發寫入帶來的鎖爭用問題

l 集合名不可為空字串(” “)

l 不能包含\0或Null 字元,這個字元表示鍵的結尾

l 集合名不能以”system.”開頭,此首碼是系統本身保留的

l 集合名不能包含$字元(注:可包含 . 點號)

2.3 文檔設計

2.3.1 MongoDB文檔設計

l 文檔中的key禁止使用任何_以外的特殊字元

l 盡量將同樣類型的文檔存放在一個集合中,將不同類型的文檔分散在不同的集合中

l 相同類型的文檔能夠大幅度提高索引利用率,如果文檔混雜存放則可能會出現查詢經常需要全表掃描的情況

l 禁止使用_id,如:向_id中寫入自訂內容

l 盡量存放統一小寫後的資料

l 儘可能的縮短key的長度(注意是儘可能!會涉及到效能問題)

2.4 索引設計

2.4.1 MongoDB索引設計

l 優先使用覆蓋索引

l MongoDB 的複合式索引使用原則與 MySQL 一致,遵循“最左原則”

l 索引名稱長度不要超過128字元

l 應盡量綜合評估查詢情境,通過評估儘可能的將單列索引併入複合式索引以降低所以數量,結合1,2點

l 在建立複合式索引的時候,應評估索引中包含的欄位,盡量將資料基數大的欄位放在複合式索引的前面

l 在資料量較大的時候,MongoDB 索引的建立是一個緩慢的過程,所以應當在上前線或資料量變得很大前盡量評估,按需建立會用到的索引

l MongoDB 的索引建立是庫級鎖,在索引建立時該集合所在庫不可讀寫,所以如需添加索引,請聯絡 DBA

l 特別注意基於地理位置的索引建立時會帶來的問題。

2.4 索引設計

 

 

 

第3章 參考Mongodb硬體資源計算標準3.1 Cpu資源計算標準

3.1.1 複本集

標準:64core---------2TB    snappy壓縮演算法 CPU一個線程會跑滿一個核心。假設寫入一個線程,讀取一個線程,那這兩個線程在接近滿負荷跑時兩個CPU核心會用完。

----------------------------------------------------------------------------------

primary節點:例

cpu core = 2(系統預留)+12000(讀寫)/1000 core,按實際情況配置cpu資源

-----------------------------------------------------------------------------------

3.1.2 分區複本集

------------------------------------------------------------------------------------

待計算評估。

-------------------------------------------------------------------------------------

3.2 記憶體資源計算標準

資料量:記憶體≈3:1         (最低標準5:1)

Eg:700G資料量:

在複本集模式下最低應該使用128G記憶體。遵循最低標準或接近原則。

--------------------------------------

700/5=140≈128

---------------------------------------

在分區複本集(3分區下)每個執行個體機器應該使用64GB記憶體

------------------------------------------------------------

700/5=140G=<64G*3

------------------------------------------------------------

3.3 硬碟資源計算標準

3.3.1 硬碟類型

在資源允許情況下,mongodb優先以SSD為主。資源不允許情況下,如有以下情況,則必須用SSD。

---------------------------------------------------------------------------------------------

讀每秒讀取超過資料量100M,讀隊列阻塞上升,則必須用SSD。

寫每秒讀取超過資料量100M,寫隊列阻塞上升,則必須用SSD。

---------------------------------------------------------------------------------------------

磁碟規格:

以700G資料量為例:使用磁碟大小≈基數+每日增長資料量*90天

3.3.2 硬碟大小

根據實際資料量增長率,預設至少應該保留資料量3個月增長空間。

3.4 網路網卡資源計算標準

如果硬碟是SSD,那麼可以在超高情況200M/s寫入或者讀取上在主節點和第二備節點提供萬兆網卡。

其他情況用千兆網卡即可。

MongoDB硬體及開發標準規範

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.