YCSB大數(shù)據(jù)存儲壓測工具推薦

前置工作

針對大數(shù)據(jù)相關(guān)存儲進行壓測,本文以Hbase1.2.X版本為例進行描述:

獲取二進制文件

方式1:源碼下載git@github.com:brianfrankcooper/YCSB.git,針對源碼操作如下:

支持所有類型存儲:mvn clean package
僅支持單一存儲構(gòu)建:mvn -pl com.yahoo.ycsb:mongodb-binding -am clean package

方式2:使用已編譯好的二進制文件,具體文件鏈接:https://github.com/brianfrankcooper/YCSB/releases/download/0.14.0/ycsb-0.14.0.tar.gz

設(shè)置Hbase集群相關(guān)配置

找到hbase版本hbase12對應(yīng)的ycsb客戶端hbase12-binding,創(chuàng)建conf目錄,將hbase 集群對應(yīng)的hbase-site.xml文件下載至該目錄;確??梢酝ㄟ^域名訪問hbase集群;在hbase集群中創(chuàng)建相關(guān)表(由于workload中指定數(shù)據(jù)源,所以創(chuàng)建的表需要對應(yīng)起來, 否則需要自定義數(shù)據(jù)生成器來進行測試-不推薦),ycsb不負責表的創(chuàng)建;

測試實施

數(shù)據(jù)裝載

./bin/ycsb.sh load hbase12 -P workloads/workloada -p table=usertable -p columnfamily=cf -p recordcount=100000000 -p operationcount=100000000 -threads 50 -srecordcount=100000000 總共的

-P workloads/workloada 該項參數(shù)是必須的,但是其中的內(nèi)容可以被命令行中的-p參數(shù)覆蓋,各參數(shù)具體含義如下:

recordcount=100000000 總共的操作條數(shù) (load時)

operationcount=100000000 總共操作的次數(shù) (run時)

workload=com.yahoo.ycsb.workloads.CoreWorkload 數(shù)據(jù)生成器(默認usertable表)

readallfields=true 在讀取的時候,是否需要讀取所有字段

readproportion=0.5 讀操作占比

updateproportion=0.5 update操作占比scanproportion=0 scan操作占比

insertproportion=0 insert操作占比

requestdistribution=zipfian run時使用的分布

-s :每 10s 打印一次客戶端狀態(tài),用于調(diào)試;

-threads:客戶端線程數(shù),默認為 1;

-target:每秒的目標操作數(shù),默認為無限制(盡可能快地完成操作);

Linux環(huán)境:需要使用ycsb.sh 非ycsb;需要使用 -threads 非 -thread;table=usertable -p columnfamily=cf

workloada中參數(shù)說明,其中命令行中指定的參數(shù)值會覆蓋默認值

數(shù)據(jù)運行

./bin/ycsb.sh run hbase12 -P workloads/workloadd -p table=usertable -p columnfamily=cf -p recordcount=1000000 -p operationcount=1000000 -threads 1000 -s

替換不同workload來進行測試,不同workload含義如下:

workloada:讀寫占比50:50;

workloadb:讀寫占比95:5;

workloadc:讀寫占比100:0;

workloadd:讀最近更新:

該workload 會插入新紀錄,越新讀取概率越大;

workloade:小范圍查詢:該 workload 會查詢小范圍紀錄非單個紀錄;

workloadf:讀取-修改-寫入:該workload 會讀取一個紀錄,然后修改該紀錄,最后寫回;

測試結(jié)果

結(jié)果參數(shù)說明:

RunTime(ms):運行總時間

Throughput(ops/sec):吞吐量,每秒操作數(shù)

[TOTAL_GCS_PS_Scavenge], Count:Parallel Scavenge 回收次數(shù)[TOTAL_GC_TIME_PS_Scavenge], Time(ms):Parallel Scavenge 回收時間[TOTAL_GC_TIME_%_PS_Scavenge], Time(%):Parallel Scavenge 回收時間百分比

[TOTAL_GCS_PS_MarkSweep], Count:PS MarkSweep 回收次數(shù)[TOTAL_GC_TIME_PS_MarkSweep], Time(ms):PS MarkSweep 回收時間[TOTAL_GC_TIME_%_PS_MarkSweep], Time(%):PS MarkSweep 回收時間百分比

[TOTAL_GCs], Count:全局 GC 次數(shù)

[TOTAL_GC_TIME], Time(ms):全局 GC 時間

[TOTAL_GC_TIME_%], Time(%):全局 GC 時間百分比不同操作類型:READ\UPDATE\CLEANUP\SCAN等;

Operations :總操作數(shù)

Avg(us) :平均延遲(微秒)

Min(us):最小延遲

Max(us):最大延遲

95thPercentileLatency(us) 95%的樣本延遲低于該值

99thPercentileLatency(us) 99%的樣本延遲低于該值

Return=OK, 50011 結(jié)果(正確),總操作數(shù)(50011)

備注

YCSB 的延遲為端到端的延遲,在開始調(diào)用數(shù)據(jù)庫接口層方法前開始計時,在方法返回時結(jié)束計時,延遲包括這幾個部分:在接口層內(nèi)代碼的運行時間+客戶端到數(shù)據(jù)庫服務(wù)器的網(wǎng)絡(luò)延遲+數(shù)據(jù)庫的執(zhí)行時間;不包括由-target節(jié)流參數(shù)引入的延遲

附加網(wǎng)址:

http://wiki.github.com/brianfrankcooper/YCSB/
https://labs.yahoo.com/news/yahoo-cloud-serving-benchmark/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前置工作 針對大數(shù)據(jù)相關(guān)存儲進行壓測,本文以Hbase1.2.X版本為例進行描述: 獲取二進制文件 方式1:源碼下...
    草汀閱讀 1,567評論 0 1
  • 作者:一字馬胡 轉(zhuǎn)載標志 【2017-11-12】 更新日志 日期更新內(nèi)容備注 2017-11-12新建文章初版 ...
    beneke閱讀 2,328評論 0 7
  • 聲明:原創(chuàng)文章,轉(zhuǎn)載請注明出處。http://www.itdecent.cn/u/e02df63eaa87 1、J...
    唐影若凡閱讀 1,343評論 0 6
  • 轉(zhuǎn)載blog.csdn.net/ning109314/article/details/10411495/ JVM工...
    forever_smile閱讀 5,507評論 1 56
  • 如果說垃圾收集算法是內(nèi)存回收的方法論,垃圾收集器就是內(nèi)存回收的具體實現(xiàn)。Java虛擬機規(guī)范中對垃圾收集器應(yīng)該如何實...
    平頭哥2015閱讀 314評論 0 0

友情鏈接更多精彩內(nèi)容