查看workloads中文件
我們打開workloada查看信息
以下是workloada、workloadb、workloadc、workloadd、workloade、workloadf的相關文件信息
workloada | 讀寫均衡型,50%讀,50%寫 |
workloadb | 讀多寫少型,95%讀,5%更新。 |
workloadc | 只讀,100%讀。 |
workloadd | 讀最近寫入記錄型,95%讀,5%插入。 |
workloade | 掃描小區間型,95%掃描,5%插入。 |
workloadf | 讀寫入記錄均衡型,50%讀,50%讀、修改、寫。 |
對指定的數據庫進行測試
./bin/ycsb load mongodb -s -P workloads/S1 -p mongodb.url=mongodb://root:123@192.168.0.101/ycsb > /home/hduser/load_test.txt
- -s 代表輸出status
- -threads 指定線程數
- -P 指定workload
- > 代表stdout 輸出到 /home/hduser/load_test.txt文件
使用Mongostat輔助測試
mongostat --host 127.0.0.1:27017 -uroot -p123 --authenticationDatabase ycsb
參數說明:
--host:指定IP地址和端口,也可以只寫IP,然后使用--port參數指定端口號
-u: 如果開啟了認證,則需要在其后填寫用戶名
-p: 密碼
--authenticationDatabase:若開啟了認證,則需要在此參數后填寫認證庫(注意是認證上述賬號的數據庫)
輸出格式:
下面進行實戰
首先配置好文件mongotest_in_only。只插入數據。
#插入100萬條文檔數據 recordcount=1000000 operationcount=1000000 workload=com.yahoo.ycsb.workloads.CoreWorkload readallfields=true readproportion=0 updateproportion=0 scanproportion=0 #只有插入的操作,1就是100% insertproportion=1 requestdistribution=uniform insertorder=hashed fieldlength=250 fieldcount=8 mongodb.url=mongodb://127.0.0.1:27017/ycsb?w=0 mongodb.writeConcern=acknowledged threadcount=100
打開mongostat
mongostat --host 127.0.0.1:27017 -uroot -p123 --authenticationDatabase ycsb
切換到ycsb目錄,運行如下
./bin/ycsb load mongodb -P workloads/mongotest_in_only -s >mongo_20190418.txt
查看剛剛產生的mongo_20190418.txt
也可以在終端查看
cat mongo_20190418.txt
關注幾個信息:
RunTime(ms): 數據加載所用時間,單位毫秒(ms)
Throughput(ops/sec): 吞吐量,即ops(每秒操作次數)
Operations: 操作的總次數
AverageLatency(us): 平均響應延時,單位是微秒(us)
MinLatency(us): 最小響應時間,單位是微秒(us)
MaxLatency(us): 最大響應時間,單位是微秒(us)
95thPercentileLatency(us): 95%的操作延時,單位是微秒(us)
99thPercentileLatency(us): 99%的操作延時,單位是微秒(us)
Return=OK: 成功返回數,這個值不符合測試要求,則證明測試失敗.
[READ]開頭的代表只讀的操作記錄,其他還有例如上面的[insert],[UPDATE]等,
其他可以理解的就是字面意思,不能理解也不需要太過關注.
和其他測試軟件一樣,這個只能說是基准值,並不是標准值,和真實環境不能全部模擬,所以測試的思維要結合別的測試軟件的方法來做.
測試一下只讀操作
配置一下文件mongotest_read_only,只讀取文件。
#讀取100萬條文檔數據 recordcount=1000000 operationcount=1000000 workload=com.yahoo.ycsb.workloads.CoreWorkload readallfields=true #只讀,1即100 readproportion=1 updateproportion=0 scanproportion=0 insertproportion=0 requestdistribution=uniform insertorder=hashed fieldlength=250 fieldcount=8 mongodb.url=mongodb://127.0.0.1:27017/ycsb?w=0 mongodb.writeConcern=acknowledged threadcount=100
運行mongostat
mongostat --host 127.0.0.1:27017 -uroot -p123 --authenticationDatabase ycsb
切換到ycsb目錄,運行如下
./bin/ycsb run mongodb -P workloads/mongotest_read_only -s >mongo_20190419.txt
參考:
ycsb
https://blog.51cto.com/arthur376/2069453
mongostat