现在的位置: 首页 > 综合 > 正文

YCSB简介

2019年11月05日 ⁄ 综合 ⁄ 共 4761字 ⁄ 字号 评论关闭

YCSB

如何运行:https://github.com/brianfrankcooper/YCSB/wiki/Running-a-Workload
推荐操作顺利:https://github.com/brianfrankcooper/YCSB/wiki/Core-Workloads
如何扩展:https://github.com/brianfrankcooper/YCSB/wiki/Implementing-New-Workloads

示例:使用时先建表,然后加载数据,最后执行相关事务

建表:create 'usertable','f1','f2','f3'

加载数据:./ycsb load hbase -P ../workloads/workloada -p threads=10 -p columnfamily=f1 -p recordcount=10000 -s > load.dat
 
结果如下:
[OVERALL], RunTime(ms), 2295.0
[OVERALL], Throughput(ops/sec), 4357.298474945534
[INSERT], Operations, 10000
[INSERT], AverageLatency(us), 198.2618
[INSERT], MinLatency(us), 9
[INSERT], MaxLatency(us), 788883
[INSERT], 95thPercentileLatency(ms), 0
[INSERT], 99thPercentileLatency(ms), 0
[INSERT], Return=0, 10000
执行事务:./ycsb run hbase -P ../workloads/workloada -threads 10 -p measurementtype=timeseries -p
   columnfamily=f1 -p timeseries.granularity=2000 > transactions.dat
 
结果如下:
[OVERALL], RunTime(ms), 541.0
[OVERALL], Throughput(ops/sec), 1848.4288354898335
[UPDATE], Operations, 502
[UPDATE], AverageLatency(us), 4569.788844621514
[UPDATE], MinLatency(us), 56
[UPDATE], MaxLatency(us), 373970
[UPDATE], Return=0, 502
[UPDATE], 0, 4569.788844621514
[READ], Operations, 498
[READ], AverageLatency(us), 4618.516064257028
[READ], MinLatency(us), 742
[READ], MaxLatency(us), 379287
[READ], Return=0, 498
[READ], 0, 4618.516064257028

相关参数说明:

fieldcount the number of fields in a record (default: 10)
fieldlength the size of each field (default: 100)
readallfields should reads read all fields (true) or just one (false) (default: true)
readproportion what proportion of operations should be reads (default: 0.95)
updateproportion what proportion of operations should be updates (default: 0.05)
insertproportion what proportion of operations should be inserts (default: 0)
scanproportion what proportion of operations should be scans (default: 0)
readmodifywriteproportion what proportion of operations should be read a record, modify it, write it back (default: 0)
requestdistribution what distribution should be used to select the records to operate on – uniform, zipfian or latest (default: uniform)
maxscanlength for scans, what is the maximum number of records to scan (default: 1000)
scanlengthdistribution for scans, what distribution should be used to choose the number of records to scan, for each scan, between 1 and maxscanlength (default: uniform)
insertorder should records be inserted in order by key (“ordered”), or in hashed order (“hashed”) (default: hashed)
operationcount Number of operations to perform.
maxexecutiontime Maximum execution time in seconds. The benchmark runs until either the operation count has exhausted or the maximum specified time has elapsed, whichever is earlier.
table The name of the table (default: usertable)

其他:

-s for a long running workload, it may be useful to have the Client report status, just to assure you it has not crashed and to give you some idea of its progress. By specifying "-s" on the command line, the Client will report status every
10 seconds to stderr.
-threads the number of client threads. By default, the YCSB Client uses a single worker thread, but additional threads can be specified. This is often done to increase the amount of load offered against the database.
-target the target number of operations per second. By default, the YCSB Client will try to do as many operations as it can. For example, if each operation takes 100 milliseconds on average, the Client will do about 10 operations per second
per worker thread. However, you can throttle the target number of operations per second. For example, to generate a latency versus throughput curve, you can try different target throughputs, and measure the resulting latency for each

相关help:

Commands:
    load          Execute the load phase
    run           Execute the transaction phase
    shell         Interactive mode
 
Databases:
    basic         https://github.com/brianfrankcooper/YCSB/tree/master/basic
    cassandra-10  https://github.com/brianfrankcooper/YCSB/tree/master/cassandra
    cassandra-7   https://github.com/brianfrankcooper/YCSB/tree/master/cassandra
    cassandra-8   https://github.com/brianfrankcooper/YCSB/tree/master/cassandra
    gemfire       https://github.com/brianfrankcooper/YCSB/tree/master/gemfire
    hbase         https://github.com/brianfrankcooper/YCSB/tree/master/hbase
    infinispan    https://github.com/brianfrankcooper/YCSB/tree/master/infinispan
    jdbc          https://github.com/brianfrankcooper/YCSB/tree/master/jdbc
    mapkeeper     https://github.com/brianfrankcooper/YCSB/tree/master/mapkeeper
    mongodb       https://github.com/brianfrankcooper/YCSB/tree/master/mongodb
    nosqldb       https://github.com/brianfrankcooper/YCSB/tree/master/nosqldb
    redis         https://github.com/brianfrankcooper/YCSB/tree/master/redis
    voldemort     https://github.com/brianfrankcooper/YCSB/tree/master/voldemort
 
Options:
    -P file       Specify workload file
    -p key=value  Override workload property
    -s            Print status to stderr
    -target n     Target ops/sec (default: unthrottled)
    -threads n    Number of client threads (default: 1)
 
Workload Files:
    There are various predefined workloads under workloads/ directory.
    See https://github.com/brianfrankcooper/YCSB/wiki/Core-Properties
    for the list of workload properties.

抱歉!评论已关闭.