一、Mongodb安裝指南
1.修改YUM配置
在/etc/yum.repos.d/mongodb-org-3.6.repo的文件中寫入一下內(nèi)容
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
2.在shell中運行命令進行安裝
sudo yum install -y mongodb-org
3.啟動服務
sudo service mongod start
二、Ycsb安裝(安裝前需要安裝好JDK)
1.下載YCSB
curl -O --location https://github.com/brianfrankcooper/YCSB/releases/download/0.12.0/ycsb-0.12.0.tar.gz
2.解壓文件
tar xfvz ycsb-0.12.0.tar.gz
3.切換到安裝目錄
cd ycsb-0.12.0
三、單節(jié)點測試(已安裝好mongodb,步驟參照一,假設ip為10.10.90.18)
在ycsb/workloads/目錄下建立名為test的文件,寫入一下內(nèi)容
recordcount=500000
operationcount=1000000
workload=com.yahoo.ycsb.workloads.CoreWorkload
readallfields=true
readproportion=0.1
updateproportion=0
scanproportion=0
insertproportion=0.9
requestdistribution=uniform
insertorder=hashed
fieldlength=250
fieldcount=8
mongodb.url=mongodb://10.10.90.18:27017
mongodb.writeConcern=normal
threadcount=30
其中10.10.90.18:27017為節(jié)點的IP和端口,默認端口為27017
Ycsb的每次測試之前需要load數(shù)據(jù),命令為:
./bin/ycsb load mongodb -P workloads/test –s
測試運行命令為:
./bin/ycsb run mongodb -P workloads/test –s
刪除數(shù)據(jù)命令為
mongo 10.10.90.18
use ycsb
db.dropDatabase()
1. 記錄數(shù)變化測試:
修改ycsb/workloads/test中的recordcount一行為不同的數(shù)字,分別運行上述的load數(shù)據(jù)步驟和測試步驟,每次測試完之后需要刪除數(shù)據(jù)
2.記錄大小變化測試:
修改ycsb/workloads/test中的fieldlength一行為不同的數(shù)字,分別運行上述的load數(shù)據(jù)步驟和測試步驟,每次測試完之后需要刪除數(shù)據(jù)
3. 行記錄變化測試
修改ycsb/workloads/test中的fieldcount一行為不同的數(shù)字,分別運行上述的load數(shù)據(jù)步驟和測試步驟,每次測試完之后需要刪除數(shù)據(jù)
四、多節(jié)點測試
1. 單分片雙復制集(假設兩臺機器IP為10.10.10.1和10.10.10.2)
按照一種的步驟分別在兩臺節(jié)點安裝好mongodb,停止mongdb服務:
sudo service mongod stop
分別在兩臺機器手動啟動mongodb并設置復制集名稱都為rs1:
mongod --port 27017 --dbpath="YOUR_DB_DATA_PATH"--replSet =rs1
連接10.10.10.1服務器:
mongo 10.10.10.1
將10.10.10.2添加到復制集:
rs.add(10.10.10.2:27017)
將ycsb/workloads/test文件mongodb.url=mongodb://10.10.90.18:27017修改為
mongodb.url=mongodb://10.10.10.1:27017
運行測試步驟即可
2. 二分片(假設兩臺數(shù)據(jù)節(jié)點IP為10.10.10.1和10.10.10.2,路由和配置節(jié)點都為10.10.10.3)
按照一種的步驟分別在3臺節(jié)點安裝好mongodb,停止mongdb服務:
sudo service mongod stop
在10.10.10.1和10.10.10.2上分別啟動復制集為rs1和rs2的分片
mongod --dbpath="YOUR_DB_DATA_PATH"--replSet=rs1 –shardsvr --bind_ip 10.10.10.1(10.10.10.1運行)
mongod --dbpath="YOUR_DB_DATA_PATH"--replSet=rs2 –shardsvr --bind_ip 10.10.10.2(10.10.10.2運行)
連接10.10.10.1服務器并配置復制集:
mongo 10.10.10.1:27018
rs.initiate({_id: 'rs1', members: [{_id: 0, host: '10.10.10.1:27018'}]})
連接10.10.10.2服務器并配置復制集:
mongo 10.10.10.2:27018
rs.initiate({_id: 'rs2', members: [{_id: 0, host: '10.10.10.2:27018'}]})
在10.10.10.3上啟動配置節(jié)點
mongod --configsvr --replSet conf --dbpath="YOUR_DB_DATA_PATH"--bind_ip 10.10.10.3
連接10.10.10.3服務器并配置復制集:
mongo 10.10.10.3:27019
rs.initiate({_id: 'conf', configsvr: true, members: [{_id:0, host: '10.10.10.3:27019'}]})
在10.10.10.3上啟動路由服務
mongos --configdb conf/10.10.10.3:27019 --bind_ip10.10.10.3
配置路由節(jié)點并添加數(shù)據(jù)分片節(jié)點并開啟分片
mongo 10.10.10.3
sh.addShard( "rs1/10.10.10.1:27018")//添加rs1的分片到集群中
sh.addShard( "rs2/10.10.10.2:27018")//添加rs2的分片到集群中
sh.enableSharding("ycsb")//在數(shù)據(jù)庫上開啟分片
sh.shardCollection("ycsb. usertable ", { "key":{"_id":"hashed"}})//在數(shù)據(jù)表上開啟分片,分片策略為哈希
將ycsb/workloads/test文件mongodb.url=mongodb://10.10.90.18:27017修改為
mongodb.url=mongodb://10.10.10.3:27017
運行3中的測試步驟即可
3. 四分片
按照2中的步驟配置4臺數(shù)據(jù)節(jié)點
在最后配置路由節(jié)點并添加數(shù)據(jù)分片中將所有節(jié)點添加進去即可,其他步驟與二分片相同