標籤:RoCE 設定 storage 資料檔案 效能 engine ref 磁碟io href
簡介:大資料量和輸送量的資料庫會對單機的效能 造成較大壓力,大量的資料查詢會將單機的CPU耗盡,大的資料量對單機的儲存壓力較大,最終會耗盡系統的記憶體,將壓力轉移到磁碟IO上。- 優點:1.使用分區減少了每個分區需要處理的請求數。2.使用分區減少了每個分區儲存的資料。- mongodb分區群集的組成:shard(分區伺服器),config server(設定管理員),route(路由伺服器)- 分區伺服器:儲存資料- 設定管理員:管理分區伺服器- 路由伺服器:作為前端路由-------------------------------------------------------------------------------------- 安裝mongodb3.2: 安裝openssl-devel並解壓到/opt下 便於管理mongo和mongod,做個連結```yum install openssl-devel -ytar zxvf mongodb-linux-x86_64-3.2.1.tgz -C /opt/mv mongodb-linux-x86_64-3.2.1/ /usr/local/mongodbln -s /usr/local/mongodb/bin/mongo /usr/bin/mongoln -s /usr/local/mongodb/bin/mongod /usr/bin/mongod```- 建立四個執行個體的資料檔案和記錄檔```mkdir -p /data/mongodb/mongodb{1,2,3,4}mkdir /data/mongodb/logstouch /data/mongodb/logs/mongodb{1,2,3,4}.logchmod -R 777 /data/mongodb/logs/*.log
```
- 設定ulimit -u和ulimit -n的值大於20000```ulimit -n 25000ulimit -u 25000```
--------------------------------------------------------------------------------- 設定管理員```cd /usr/local/mongodb/bin/ //在bin目錄下vim mongodb1.confport=37017 //添加如下內容dbpath=/data/mongodb/mongodb1logpath=/data/mongodb/logs/mongodb1.loglogappend=truefork=truemaxConns=5000storageEngine=mmapv1configsvr=true
mongod -f /usr/local/mongodb/bin/mongodb1.conf //啟動服務sysctl -w vm.zone_reclaim_mode=0echo never > /sys/kernel/mm/transparent_hugepage/enabledecho never > /sys/kernel/mm/transparent_hugepage/defrag//某節點記憶體不足時,從其他節點分配記憶體```
------------------------------------------------------------------------------ 分區伺服器```#mongodb2.confcp -p mongodb1.conf mongodb2.confvim mongodb2.conf //對mongodb2.conf進行配置port=47017 //連接埠號碼為47017dbpath=/data/mongodb/mongodb2 //資料檔案logpath=/data/mongodb/logs/mongodb2.log //記錄檔logappend=truefork=truemaxConns=5000storageEngine=mmapv1shardsvr=true#mongodb3.confcp -p mongodb1.conf mongodb3.confvim mongodb3.confport=47018 //連接埠為47018dbpath=/data/mongodb/mongodb3logpath=/data/mongodb/logs/mongodb3.loglogappend=truefork=truemaxConns=5000storageEngine=mmapv1shardsvr=true#開啟兩個服務mongod -f mongodb2.confmongod -f mongodb3.conf```
--------------------------------------------------------------------------- 啟動路由伺服器 ```./mongos --port 27017 --fork --logpath=/usr/local/mongodb/bin/route.log --configdb 192.168.235.204:37017 --chunkSize 1 //必須在/usr/local/mongodb/bin下```
--------------------------------------------------------------------------- 啟用分區伺服器```mongomongos> show dbsmongos> sh.status() //shards下為空白,沒有分區伺服器mongos> sh.addShard("192.168.177.133:47017") //添加47017連接埠的分區伺服器mongos> sh.addShard("192.168.177.133:47018") //添加47018連接埠的分區伺服器mongos> sh.status()```
--------------------------------------------------------------------------
- 分區功能先添加一個資料庫,在集合裡建立資料
```mongos> sh.enableSharding("school") #啟用資料庫分區
mongos> db.info.createIndex({"id":1}) #對info表建立索引
mongos> sh.shardCollection("school.info",{"id":1}) #表分區
mongos> sh.status()
```
mongodb分布群集