ycsb/go-ycsb圧測工具の簡単な試用


ycsbはyahooオープンソースの多機能圧測ソフトウェアであり、mysql mongodb redis hbaseなど多くのソフトウェアをサポートしている.
公式住所:https://github.com/brianfrankcooper/YCSB
今回はycsb圧測redisを例に挙げます.
tar xf ycsb-0.15.0.tar.gz -C/usr/local/
cd/usr/local/ycsb-0.15.0
ここで、workloadsディレクトリの下には、各圧力測定テンプレートファイルがあります.
# cat workloads/workload_readこれは私が書いた純粋な読み取りシーンの圧力測定テンプレートです.
recordcount=1000000     #        
operationcount=1000000  #        
workload=com.yahoo.ycsb.workloads.CoreWorkload
readallfields=true  #       ,          
readproportion=1  #     
updateproportion=0   # update  
scanproportion=0
insertproportion=0
requestdistribution=zipfian

遠隔地のcodis-proxyの測定を開始します
./bin/ycsb load redis -s -P workloads/workload_read -p redis.host=192.168.2.4 -p redis.port=19000 -threads 10       (        )

./bin/ycsb run redis -s -P workloads/workload_read -p redis.host=192.168.2.4 -p redis.port=19000  -threads 10           
       :
2019-07-26 00:36:12:194 80 sec: 1000000 operations; 9884.21 current ops/sec; [READ: Count=7503, Max=9047, Min=411, Avg=826.87, 90=1048, 99=2931, 99.9=7791, 99.99=8975] [CLEANUP: Count=10, Max=1771, Min=52, Avg=235.2, 90=92, 99=1771, 99.9=1771, 99.99=1771] 
[OVERALL], RunTime(ms), 80760
[OVERALL], Throughput(ops/sec), 12382.367508667658
[TOTAL_GCS_PS_Scavenge], Count, 278
[TOTAL_GC_TIME_PS_Scavenge], Time(ms), 309
[TOTAL_GC_TIME_%_PS_Scavenge], Time(%), 0.3826151560178306
[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, 278
[TOTAL_GC_TIME], Time(ms), 309
[TOTAL_GC_TIME_%], Time(%), 0.3826151560178306
[READ], Operations, 1000000
[READ], AverageLatency(us), 800.371762
[READ], MinLatency(us), 381
[READ], MaxLatency(us), 65087
[READ], 95thPercentileLatency(us), 1163
[READ], 99thPercentileLatency(us), 2089
[READ], Return=OK, 1000000
[CLEANUP], Operations, 10
[CLEANUP], AverageLatency(us), 235.2
[CLEANUP], MinLatency(us), 52
[CLEANUP], MaxLatency(us), 1771
[CLEANUP], 95thPercentileLatency(us), 1771
[CLEANUP], 99thPercentileLatency(us), 1771

############
また、国内のpingcapの唐劉大男もgo-ycsbのソフトウェアを書いており、機能的にはycsbと似ている.
コンパイル方法はこれを見ることができます.https://github.com/pingcap/go-ycsb
yum install golang

mkdir /home/gocode/

echo 'export GOPATH=/home/gocode/' >> /root/.bashrc
source /root/.bashrc

git clone https://github.com/pingcap/go-ycsb.git $GOPATH/src/github.com/pingcap/go-ycsb
cd $GOPATH/src/github.com/pingcap/go-ycsb
make
          。

コンパイルが完了すると、使い方はycsbとほぼ同じで、圧測redisは以下のように書きます.
load:
./bin/go-ycsb load redis -P workloads/workload_dba  -p redis.mode=single -p redis.addr=192.168.2.4:19000

run:
./bin/go-ycsb run  redis -P workloads/workload_dba  -p redis.mode=single -p redis.addr=192.168.2.4:19000