YCSB數(shù)據(jù)庫(kù)性能測(cè)試工具


概述

Yahoo! Cloud Serving Benchmark (YCSB) 是一個(gè)Java語(yǔ)言實(shí)現(xiàn)的主要用于云端或者服務(wù)器端的數(shù)據(jù)庫(kù)性能測(cè)試工具宙暇,其內(nèi)部涵蓋了常見(jiàn)的NoSQL數(shù)據(jù)庫(kù)產(chǎn)品,如Cassandra票唆、MongoDB、HBase、Redis等等翎蹈。
下載地址:https://github.com/brianfrankcooper/YCSB/wiki
官方地址:https://github.com/brianfrankcooper/YCSB
這個(gè)框架具有很好的可擴(kuò)展性,可以通過(guò)配置文件來(lái)指定需要進(jìn)行什么樣的workload的測(cè)試捌臊,比如讀寫(xiě)比例多少杨蛋,每條記錄多大,每個(gè)字段多大理澎,并發(fā)數(shù)多大逞力,進(jìn)行隨機(jī)選擇使用的分布(比如讀一條數(shù)據(jù)的時(shí)候)等。

YCSB的架構(gòu)圖

其中糠爬,灰色部分用戶(hù)可以通過(guò)編寫(xiě)Java代碼的方式來(lái)自己定制寇荧。

提出目的:

NoSQL數(shù)據(jù)庫(kù)不支持ACID型事務(wù),各種不同類(lèi)型的OLTP(on-Line Transaction Processing)應(yīng)用程序服務(wù)與傳統(tǒng)數(shù)據(jù)庫(kù)服務(wù)工作負(fù)載有很大的區(qū)別执隧,所以不能單靠傳統(tǒng)的標(biāo)準(zhǔn)如(TCP-C)來(lái)衡量NoSQL數(shù)據(jù)庫(kù)性能

優(yōu)點(diǎn)
  • 配置方便揩抡,源碼開(kāi)源《屏穑可以設(shè)置任意讀寫(xiě)比峦嗤,線(xiàn)程數(shù)
  • 它包括幾乎所有數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序,并且有較強(qiáng)的可擴(kuò)展性
  • 這是行業(yè)標(biāo)準(zhǔn)屋摔。(相當(dāng)穩(wěn)定且有據(jù)可查)
缺點(diǎn)
  • 不能自動(dòng)生成測(cè)試文檔
  • 沒(méi)有UI操作界面烁设,需要一定門(mén)檻
參考文獻(xiàn)

Benchmarking Cloud Serving Systems with YCSB


安裝與使用

1. 下載工具包,直接解壓就可以使用钓试,無(wú)需編譯和安裝装黑。

環(huán)境需求:java,YCSB是java應(yīng)用程序,所以依賴(lài)于JRE
下載地址1:https://mirrors.huaweicloud.com/kunpeng/archive/kunpeng_solution/native/YCSB-0.15.0.zip
下載地址2:https://github.com/brianfrankcooper/ YCSB /releases/download/0.17.0/ycsb-0.17.0.tar.gz

2. 將下載的壓縮包解壓弓熏,并打開(kāi)恋谭。

解壓后

主要目錄說(shuō)明:

  • bin:目錄下有個(gè)可執(zhí)行的ycsb文件,是用戶(hù)操作的命令行接口挽鞠。ycsb主邏輯是:解析命令行疚颊、設(shè)置java環(huán)境,加載java-libs信认,封裝成可以執(zhí)行的java命令串稀,并執(zhí)行。
  • workloads:目錄下有各種workload的模板狮杨,可以基于workload模板進(jìn)行自定義修改母截。
    默認(rèn)的6種測(cè)試場(chǎng)景如下:
    1)workloada:讀寫(xiě)均衡型,50%/50%橄教,Reads/Writes
    2)workloadb:讀多寫(xiě)少型清寇,95%/5%喘漏,Reads/Writes
    3)workloadc:只讀型,100%华烟,Reads
    4)workloadd:讀最近寫(xiě)入記錄型翩迈,95%/5%,Reads/insert
    5)workloade:掃描小區(qū)間型盔夜,95%/5%负饲,scan/insert
    6)workloadf:讀寫(xiě)入記錄均衡型,50%/50%喂链,Reads/insert
  • workload_template:參數(shù)列表模板返十。
3. 壓測(cè)配置。

選擇需要測(cè)試的測(cè)試場(chǎng)景椭微,編輯對(duì)應(yīng)的配置文件洞坑,以讀寫(xiě)均衡型測(cè)試workloada為例:


參數(shù)配置
參數(shù)項(xiàng) 參數(shù)具體含義
recordcount YCSB load階段加載的記錄條數(shù)
operationcount YCSB run階段執(zhí)行的操作總數(shù)
workload workload實(shí)現(xiàn)類(lèi)
readallfields 查詢(xún)時(shí)是否讀取記錄的所有字段
readproportion 讀操作的百分比
updateproportion 更新操作的百分比
scanproportion 插入操作的百分比
requestdistribution 請(qǐng)求分布模式,uniform, zipfian, latest三種分布模式
mongodb.url 待測(cè)試mongo實(shí)例的連接地址 (注:此為添加項(xiàng))
mongodb.database 測(cè)試時(shí)使用的數(shù)據(jù)庫(kù)名稱(chēng)蝇率,默認(rèn)ycsb(注:此為添加項(xiàng))
4. 加載數(shù)據(jù)

bin\ycsb load mongodb -threads 100 -P workloads\workloada
返回字段Return=OK迟杂,則表示數(shù)據(jù)導(dǎo)入成功。

命令參數(shù)說(shuō)明:
ycsb [command] [database] [options]

  • command選項(xiàng):
    load:載入測(cè)試數(shù)據(jù)本慕。
    run:執(zhí)行測(cè)試過(guò)程排拷。
    shell:交互模式。
  • database選項(xiàng):指定測(cè)試的數(shù)據(jù)庫(kù)場(chǎng)景锅尘,例如mongodb, cassandra, memcached等监氢。
  • options選項(xiàng):
    -P file :指定workload文件,相對(duì)路徑或者絕對(duì)路徑鉴象。
    -cp path :指定額外的Java classpath。
    -jvm-args args :指定額外的JVM參數(shù)何鸡。
    -p key=value :設(shè)置ycsb配置項(xiàng)纺弊,會(huì)覆蓋workload文件的配置項(xiàng)。
    -s :運(yùn)行時(shí)的中間狀態(tài)打印到stderr中骡男。
    -target n :表示1s中總共的操作次數(shù)淆游。
    -threads n :設(shè)置ycsb client的并發(fā)測(cè)試線(xiàn)程數(shù),默認(rèn)是1隔盛,單線(xiàn)程犹菱。
5. 執(zhí)行測(cè)試

bin\ycsb run mongodb -threads 100 -P workloads\workloada
返回字段Return=OK,則表示測(cè)試完成吮炕,取“[OVERALL],Throughput”值作為測(cè)試指標(biāo)腊脱。
測(cè)試結(jié)果分析
RunTime(ms): 數(shù)據(jù)加載所用時(shí)間,單位毫秒(ms)
Throughput(ops/sec): 吞吐量,即ops(每秒操作次數(shù))
Operations: 操作的總次數(shù)
AverageLatency(us): 平均響應(yīng)延時(shí),單位是微秒(us)
MinLatency(us): 最小響應(yīng)時(shí)間,單位是微秒(us)
MaxLatency(us): 最大響應(yīng)時(shí)間,單位是微秒(us)
95thPercentileLatency(us): 95%的操作延時(shí),單位是微秒(us)
99thPercentileLatency(us): 99%的操作延時(shí),單位是微秒(us)
Return=OK: 成功返回?cái)?shù),這個(gè)值不符合測(cè)試要求,則證明測(cè)試失敗.
[READ]開(kāi)頭的代表只讀的操作記錄,其他還有例如上面的[insert],[UPDATE]等,

其他可以理解的就是字面意思,不能理解也不需要太過(guò)關(guān)注.

和其他測(cè)試軟件一樣,這個(gè)只能說(shuō)是基準(zhǔn)值,并不是標(biāo)準(zhǔn)值,和真實(shí)環(huán)境不能全部模擬,所以測(cè)試的思維要結(jié)合別的測(cè)試軟件的方法來(lái)做.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市龙亲,隨后出現(xiàn)的幾起案子陕凹,更是在濱河造成了極大的恐慌悍抑,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杜耙,死亡現(xiàn)場(chǎng)離奇詭異搜骡,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)佑女,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)记靡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人团驱,你說(shuō)我怎么就攤上這事摸吠。” “怎么了店茶?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵蜕便,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我贩幻,道長(zhǎng)轿腺,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任丛楚,我火速辦了婚禮族壳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘趣些。我一直安慰自己仿荆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布坏平。 她就那樣靜靜地躺著拢操,像睡著了一般。 火紅的嫁衣襯著肌膚如雪舶替。 梳的紋絲不亂的頭發(fā)上令境,一...
    開(kāi)封第一講書(shū)人閱讀 51,115評(píng)論 1 296
  • 那天,我揣著相機(jī)與錄音顾瞪,去河邊找鬼舔庶。 笑死,一個(gè)胖子當(dāng)著我的面吹牛陈醒,可吹牛的內(nèi)容都是我干的惕橙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼钉跷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼弥鹦!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起爷辙,我...
    開(kāi)封第一講書(shū)人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤惶凝,失蹤者是張志新(化名)和其女友劉穎吼虎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體苍鲜,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡思灰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了混滔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片洒疚。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖坯屿,靈堂內(nèi)的尸體忽然破棺而出油湖,到底是詐尸還是另有隱情,我是刑警寧澤领跛,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布乏德,位于F島的核電站,受9級(jí)特大地震影響吠昭,放射性物質(zhì)發(fā)生泄漏喊括。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一矢棚、第九天 我趴在偏房一處隱蔽的房頂上張望郑什。 院中可真熱鬧,春花似錦蒲肋、人聲如沸蘑拯。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)申窘。三九已至,卻和暖如春孔轴,著一層夾襖步出監(jiān)牢的瞬間剃法,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工距糖, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留玄窝,地道東北人牵寺。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓悍引,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親帽氓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子趣斤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容