YCSB壓力測試工具

環(huán)境

Yahoo! Cloud System Benchmark (YCSB)性能測試工具

1.下載和安裝

1.下載并解壓

wget https://github.com/brianfrankcooper/YCSB/releases/download/0.15.0/ycsb-0.15.0.tar.gz
tar xfvz ycsb-0.15.0.tar.gz
cd ycsb-0.15.0

2.測試是否可以運行

bin/ycsb.sh load basic -P workloads/workloada
bin/ycsb.sh run basic -P workloads/workloada

3.執(zhí)行測試

## 500線程測試 MongoDB
/home/ycsb-0.15.0/bin/ycsb.sh run mongodb -P /home/ycsb-0.15.0/workloads/workloadc -threads 500


## 500線程測試 Redis
## https://github.com/brianfrankcooper/YCSB/tree/master/redis
## /home/ycsb-0.15.0/bin/ycsb.sh run redis -P /home/ycsb-0.15.0/workloads/workloadc -p redis.host=localhost -p redis.port=6379 -threads 500
## 500線程測試 Redis Cluster
## /home/ycsb-0.15.0/bin/ycsb.sh run redis -P /home/ycsb-0.15.0/workloads/workloadc -p redis.host=192.168.30.35 -p redis.port=6379 -threads 5 -p redis.cluster=true

/home/ycsb-0.15.0/bin/ycsb.sh load redis -P /home/ycsb-0.15.0/workloads/workloadc \
-p redis.host=192.168.30.35 \
-p redis.host=192.168.30.36 \
-p redis.host=192.168.30.37 \
-p redis.host=192.168.30.38 \
-p redis.host=192.168.30.39 \
-p redis.host=192.168.30.40 \
-p redis.port=6379 -threads 5 -p redis.cluster=true

/home/ycsb-0.15.0/bin/ycsb.sh run redis -P /home/ycsb-0.15.0/workloads/workloadc \
-p redis.host=192.168.30.35 \
-p redis.host=192.168.30.36 \
-p redis.host=192.168.30.37 \
-p redis.host=192.168.30.38 \
-p redis.host=192.168.30.39 \
-p redis.host=192.168.30.40 \
-p redis.port=6379 -threads 5 -p redis.cluster=true

4.配置文件示例(本示例為寫入測試)

cat <<\EOF >/home/ycsb-0.15.0/workloads/workloadc
## 測試數(shù)據(jù)集的記錄條數(shù)
recordcount=500000

## 測試過程中執(zhí)行的操作總數(shù)
operationcount=500000

## 實現(xiàn)類
workload=com.yahoo.ycsb.workloads.CoreWorkload
# workload=com.yahoo.ycsb.db.MongoDbClient
# mongodb.url=mongodb://192.168.30.161:27017
mongodb.url=mongodb://192.168.30.44:27200

## 查詢時是否讀取記錄的所有字段(默認為 true)
readallfields=true

## 讀取操作比例(例如:0.5)
readproportion=0

## 插入操作比例
insertproportion=1

## 更新操作比例
updateproportion=0

## 掃描操作比例
scanproportion=0

## 請求分布模式
requestdistribution=zipfian
EOF

2.命令參數(shù)

## 指定需要讀取的配置文件(可以同時指定多個)
-P workloads/workloada
-P workloads/workloada -P large.dat
## 指定每2000毫秒輸出一次統(tǒng)計結果
## 報告的時間點數(shù)據(jù)僅為前一個2000毫秒的平均值
-p measurementtype=timeseries -p timeseries.granularity=2000
## 指定 10 個線程
-threads 10
## 每秒總共 100 次操作
-target 100

3.寫入配置文件

## 指定 10 個線程
threadcount=10
## 每秒總共 100 次操作
target=100
## 指定每2000毫秒輸出一次統(tǒng)計結果
## 報告的時間點數(shù)據(jù)僅為前一個2000毫秒的平均值
measurementtype=timeseries
timeseries.granularity=2000

4.輸出結果說明

[OVERALL],RunTime(ms), 10110                        ## 總共運行時間10.11秒
[OVERALL],Throughput(ops/sec), 98.91196834817013    ## 平均吞吐量98.9次/秒
[UPDATE], Operations, 491                           ## 有491個更新操作
[UPDATE], AverageLatency(ms), 0.054989816700611     ## 平均響應時間(毫秒)
[UPDATE], MinLatency(ms), 0                         ## 最小響應時間(毫秒)(1秒=1000毫秒)
[UPDATE], MaxLatency(ms), 1                         ## 最大響應時間(毫秒)
[UPDATE], 95thPercentileLatency(ms), 1
[UPDATE], 99thPercentileLatency(ms), 1
[UPDATE], Return=0, 491                             ## 有491個更新操作返回0(0=成功)
[UPDATE], 0, 464                                    ## 有464個更新操作在1ms內(nèi)完成
[UPDATE], 1, 27                                     ## 有27個更新操作在1-2ms內(nèi)完成
[UPDATE], 2, 0
[UPDATE], 3, 0
[UPDATE], 4, 0

5.實測結果

CPU:8核
內(nèi)存:24G
硬盤:SSD存儲

[20:04:10 root@mongodb-test-oneonde ~ $]mongostat 
insert query update delete getmore command dirty used flushes vsize  res qrw arw net_in net_out conn                time
 28763    *0     *0     *0       0     2|0  2.2% 2.9%       0 2.02G 971M 0|0 1|0  37.1m   1.36m  104 Aug  1 20:04:13.302
 26714    *0     *0     *0       0     2|0  2.6% 3.3%       0 2.02G 971M 0|1 1|0  34.5m   1.27m  104 Aug  1 20:04:14.302
 28496    *0     *0     *0       0     3|0  2.9% 3.6%       0 2.02G 971M 0|0 1|0  36.8m   1.35m  104 Aug  1 20:04:15.301
 27726    *0     *0     *0       0     2|0  3.3% 3.9%       0 2.02G 971M 0|0 1|2  35.8m   1.31m  104 Aug  1 20:04:16.301
 26610    *0     *0     *0       0     1|0  3.6% 4.3%       0 2.02G 971M 0|3 1|0  34.4m   1.26m  104 Aug  1 20:04:17.302
 26036    *0     *0     *0       0     2|0  3.9% 4.6%       0 2.02G 971M 0|0 1|0  33.6m   1.24m  104 Aug  1 20:04:18.300
 28221    *0     *0     *0       0     2|0  4.2% 4.9%       0 2.02G 971M 0|1 1|0  36.4m   1.33m  104 Aug  1 20:04:19.300
 28502    *0     *0     *0       0     1|0  4.6% 5.3%       0 2.02G 971M 0|0 1|1  36.8m   1.35m  104 Aug  1 20:04:20.303
 28430    *0     *0     *0       0     2|0  4.9% 5.6%       0 2.02G 971M 0|0 1|1  36.7m   1.34m  104 Aug  1 20:04:21.301
 26332    *0     *0     *0       0     2|0  3.5% 5.9%       0 2.02G 971M 0|0 1|1  34.0m   1.25m  104 Aug  1 20:04:22.300


[OVERALL], RunTime(ms), 19632
[OVERALL], Throughput(ops/sec), 25468.622656886717
[TOTAL_GCS_PS_Scavenge], Count, 10
[TOTAL_GC_TIME_PS_Scavenge], Time(ms), 80
[TOTAL_GC_TIME_%_PS_Scavenge], Time(%), 0.40749796251018744
[TOTAL_GCS_PS_MarkSweep], Count, 0
[TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 0
[TOTAL_GC_TIME_%_PS_MarkSweep], Time(%), 0.0
[TOTAL_GCs], Count, 10
[TOTAL_GC_TIME], Time(ms), 80
[TOTAL_GC_TIME_%], Time(%), 0.40749796251018744
[CLEANUP], Operations, 500
[CLEANUP], AverageLatency(us), 15.93
[CLEANUP], MinLatency(us), 0
[CLEANUP], MaxLatency(us), 7803
[CLEANUP], 95thPercentileLatency(us), 1
[CLEANUP], 99thPercentileLatency(us), 3
[INSERT], Operations, 500000
[INSERT], AverageLatency(us), 19045.604576
[INSERT], MinLatency(us), 11296
[INSERT], MaxLatency(us), 169215
[INSERT], 95thPercentileLatency(us), 23743
[INSERT], 99thPercentileLatency(us), 42079
[INSERT], Return=OK, 500000

附錄:

GitHub主頁:https://github.com/brianfrankcooper/YCSB

最新發(fā)行版:https://github.com/brianfrankcooper/YCSB/releases/latest

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子讹躯,更是在濱河造成了極大的恐慌搀愧,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荆姆,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機疏之,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來暇咆,“玉大人锋爪,你說我怎么就攤上這事“忠担” “怎么了其骄?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長扯旷。 經(jīng)常有香客問我拯爽,道長,這世上最難降的妖魔是什么薄霜? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任某抓,我火速辦了婚禮纸兔,結果婚禮上,老公的妹妹穿的比我還像新娘否副。我一直安慰自己汉矿,他們只是感情好,可當我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布备禀。 她就那樣靜靜地躺著洲拇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪曲尸。 梳的紋絲不亂的頭發(fā)上赋续,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天,我揣著相機與錄音另患,去河邊找鬼纽乱。 笑死,一個胖子當著我的面吹牛昆箕,可吹牛的內(nèi)容都是我干的鸦列。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼鹏倘,長吁一口氣:“原來是場噩夢啊……” “哼薯嗤!你這毒婦竟也來了?” 一聲冷哼從身側響起纤泵,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤骆姐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后捏题,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體玻褪,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年涉馅,在試婚紗的時候發(fā)現(xiàn)自己被綠了归园。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡稚矿,死狀恐怖庸诱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情晤揣,我是刑警寧澤桥爽,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站昧识,受9級特大地震影響钠四,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一缀去、第九天 我趴在偏房一處隱蔽的房頂上張望侣灶。 院中可真熱鬧,春花似錦缕碎、人聲如沸褥影。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凡怎。三九已至,卻和暖如春赊抖,著一層夾襖步出監(jiān)牢的瞬間统倒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工氛雪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留房匆,地道東北人。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓注暗,卻偏偏與公主長得像坛缕,于是被迫代替她去往敵國和親墓猎。 傳聞我的和親對象是個殘疾皇子捆昏,可洞房花燭夜當晚...
    茶點故事閱讀 43,509評論 2 348

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

  • 今天有點咸??想做一只沒有夢想的搬運工 十六進制編輯器 十六進制編輯器(二進制文件編輯器或字節(jié)編輯器)是一種允許操縱...
    Honny_Boo閱讀 2,437評論 0 7
  • # Python 資源大全中文版 我想很多程序員應該記得 GitHub 上有一個 Awesome - XXX 系列...
    小邁克閱讀 2,965評論 1 3
  • 如果只希望選住在 "Beijing" 的人,則向 SELECT 語句添加 WHERE 子句: SELECT * F...
    zhengjuan閱讀 1,126評論 0 1
  • 我把這三月給你毙沾, 我把這微風給你骗卜, 我把這細雨給你, 我把這萬物任你裝點左胞。 我把這六月給你寇仓, 我把這艷陽給你, 我...
    瑾怡軒閱讀 286評論 0 1
  • 最近期末烤宙,能動筆的時間越來越少了遍烦。 但閱讀并沒有落下,在堅持閱讀躺枕。 正在使用的閱讀app:小獨服猪,觀止 親測好用。 ...
    _青箏閱讀 236評論 0 1