mongodb安裝
這里以安裝單機(jī)版為例,rpm包方式安裝
wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.4/x86_64/RPMS/mongodb-org-server-4.4.7-1.el7.x86_64.rpm
wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.4/x86_64/RPMS/mongodb-org-mongos-4.4.7-1.el7.x86_64.rpm
rpm -ivh mongodb-org-server-4.4.7-1.el7.x86_64.rpm
rpm -ivh mongodb-org-mongos-4.4.7-1.el7.x86_64.rpm
啟動(dòng) ?systemctl start mongod
YCSB壓測(cè)工具安裝
這里不采用網(wǎng)上大多說(shuō)的maven方式源碼安裝,因?yàn)橹恍枰猰ongo相關(guān)的壓測(cè)工具,故直接下載對(duì)應(yīng)的包即可
wget https://github.com/brianfrankcooper/YCSB/releases/download/0.17.0/ycsb-mongodb-binding-0.17.0.tar.gz
tar zxvf ycsb-mongodb-binding-0.17.0.tar.gz
cd ycsb-mongodb-binding-0.17.0
數(shù)據(jù)準(zhǔn)備
這里準(zhǔn)備測(cè)試數(shù)據(jù),同時(shí)也是測(cè)試insert的壓力數(shù)據(jù)
--異步驅(qū)動(dòng)異常,連接會(huì)報(bào)錯(cuò)
./bin/ycsb load mongodb-async -s -target 5000 -threads 10 -P workloads/workloada -p mongodb.url="mongodb://test:vG5fmBwKOn@192.168.15.145:27005/testdb"
--同步方式,正常使用
./bin/ycsb load mongodb -s -target 5000 -threads 10 -P workloads/workloada -p mongodb.url="mongodb://test:vG5fmBwKOn@192.168.15.145:27005/testdb"
壓測(cè)
編輯壓測(cè)參數(shù)文件,workloads目錄下提供了多種模板,這里以workloada模板為例
table=usertable (壓測(cè)時(shí)的集合名稱)
recordcount = 1000000(表示load和run操作中,使用的YCSB實(shí)例記錄數(shù))
operationcount = 1000000(表示run操作中,使用的YCSB實(shí)例操作次數(shù))
workload = com.yahoo.ycsb.workloads.CoreWorkload(要使用的工作負(fù)載類)
readproportion = 0.5(默認(rèn)是0.95,表示的是進(jìn)行read的操作占所有操作的比例)
updateproportion = 0.5(默認(rèn)是0.05,表示的是進(jìn)行update的操作占所有操作的比例)
insertproportion = 0(默認(rèn)是0,表示的是進(jìn)行insert的操作占所有操作的比例)
scanproportion = 0(默認(rèn)是0,表示的是進(jìn)行scan的操作占所有操作的比例)
requestdistribution = zipfian(默認(rèn)是uniform,應(yīng)該使用什么分布來(lái)選擇要操作的記錄:uniform, zipfian, hotspot, sequential, exponential 和 latest)
readallfields = true(默認(rèn)值是1,應(yīng)該讀取讀取所有字段(true),只讀取一個(gè)(false))
執(zhí)行壓測(cè)
-threads 控制客戶端連接數(shù)
./bin/ycsb run mongodb -s -threads 100 -P workloads/workloada -p mongodb.url="mongodb://test:vG5fmBwKOn@192.168.15.145:27005/testdb"
分片集群壓測(cè)
若要壓測(cè)分片集群,需手工提前建立測(cè)試集合,并設(shè)置好分片鍵,然后進(jìn)行壓測(cè)即可
mongos> use testdb;
mongos> db.createCollection("usertable")
mongos> sh.shardCollection("testdb.usertable",{"_id":"hashed"})
浙公網(wǎng)安備 33010602011771號(hào)