程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> mongodb性能基准測試工具ycsb使用基礎教程

mongodb性能基准測試工具ycsb使用基礎教程

編輯:PHP基礎知識
 

熟悉mysql的同學一定都聽說過tpcc-mysql這個mysql性能測試的工具,與其類似,nosql界也有一個性能基准測試工具ycsb。Yahoo! Cloud Serving Benchmark。

ycsb需要java環境,需要maven。

mvn clean package的時候可能會報錯…在pom.xml中把不需要的測試對象刪除即可,如infinispan,cassandra,hbase之類的。

在workloads目錄中,ycsb提供了6種workload,比如50%讀50%寫,95%讀5%寫等等,每次只能測試某一種workload。

測試的過程分為load 與 run 二個過程,load即為把測試數據寫入db,run即為 run workload。

ycsb支持的參數並不多,這樣很好。

./bin/ycsb load mongodb -s -P workloads/workloadH -threads 100 >out

./bin/ycsb run mongodb -s -P workloads/workloadH -threads 200 >out

來看哥的1主2從,10M行1Kb大小的數據,數據總大小為10G。
100%讀 0寫,讀取5M次。
YCSB Client 0.1
Command line: -db com.yahoo.ycsb.db.MongoDbClient -s -P workloads/workloadH -threads 200 -t
new database url = mongo-proxy:11111/ycsb
[OVERALL], RunTime(ms), 108056.0
[OVERALL], Throughput(ops/sec), 46272.30325016658
[READ], Operations, 5000000
[READ], AverageLatency(us), 3587.7228064
[READ], MinLatency(us), 1565
[READ], MaxLatency(us), 392512
[READ], 95thPercentileLatency(ms), 6
[READ], 99thPercentileLatency(ms), 10
[READ], Return=0, 5000000


us是微秒的意思microsecond。
ms是毫秒的意思millisecond。

如果要允許secondary支持讀取操作,需要在MongoOptions options = new MongoOptions();之後添加以下代碼:


options.setReadPreference(ReadPreference.secondaryPreferred());

而且要import com.mongodb.ReadPreference;
 

如果有認證,需要在new Mongo()之後添加以下代碼:


com.mongodb.DB db = null;
db = mongo.getDB("admin");
char[] pwd_char = "密碼".toCharArray();
boolean auth = db.authenticate("用戶名",pwd_char);

話說這個java太煩了...密碼還要自己轉化成 char Array。
 

scan($gte)的性能就差了好多,
返回結果集為10條的時候,15000qps。
結果集為20條的時候,8500qps。
結果集為100條的時候更是跌到了1600qps左右。
有點傷心。。
與上上周的調研結果相差不大。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved