mongodb壓力測試工具ycsb


mongodb安裝

這里以安裝單機版為例,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

啟動 ​systemctl start mongod 

YCSB壓測工具安裝

這里不采用網上大多說的maven方式源碼安裝,因為只需要mongo相關的壓測工具,故直接下載對應的包即可

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

數據准備

這里准備測試數據,同時也是測試insert的壓力數據

--異步驅動異常,連接會報錯 ./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"

壓測

編輯壓測參數文件,workloads目錄下提供了多種模板,這里以workloada模板為例

table=usertable (壓測時的集合名稱) recordcount = 1000000(表示load和run操作中,使用的YCSB實例記錄數) operationcount = 1000000(表示load和run操作中,使用的YCSB實例操作數) workload = com.yahoo.ycsb.workloads.CoreWorkload(要使用的工作負載類) readproportion = 0.5(默認是0.95,表示的是進行read的操作占所有操作的比例) updateproportion = 0.5(默認是0.05,表示的是進行update的操作占所有操作的比例) insertproportion = 0(默認是0,表示的是進行insert的操作占所有操作的比例) scanproportion = 0(默認是0,表示的是進行scan的操作占所有操作的比例) requestdistribution = zipfian(默認是uniform,應該使用什么分布來選擇要操作的記錄:uniform, zipfian, hotspot, sequential, exponential 和 latest) readallfields = true(默認值是1,應該讀取讀取所有字段(true),只讀取一個(false))

執行壓測

-threads 控制客戶端連接數

./bin/ycsb run mongodb -s -threads 100 -P workloads/workloada -p mongodb.url="mongodb://test:vG5fmBwKOn@192.168.15.145:27005/testdb"

分片集群壓測

若要壓測分片集群,需手工提前建立測試集合,並設置好分片鍵,然后進行壓測即可

mongos> use testdb; mongos> db.createCollection("usertable") mongos> sh.shardCollection("testdb.usertable",{"_id":"hashed"})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM