鲲鹏社区首页
EN
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

运行测试

  1. 进入安装路径。
    1
    cd YCSB-0.15.0
    

    主要目录说明:

    • bin:目录下有个可执行的YCSB文件,是用户操作的命令行接口。YCSB主逻辑是:解析命令行、设置Java环境、加载Java-libs、封装成可以执行的Java命令,并执行。
    • workloads:目录下有各种workload的模板,可以基于workload模板进行自定义修改。

    默认的6种测试场景如下:

    • workloada:读写均衡型,50%/50%,Reads/Writes
    • workloadb:读多写少型,95%/5%,Reads/Writes
    • workloadc:只读型,100%,Reads
    • workloadd:读最近写入记录型,95%/5%,Reads/insert
    • workloade:扫描小区间型,95%/5%,scan/insert
    • workloadf:读写入记录均衡型,50%/50%,Reads/insert
    • workload_template:参数列表模板
  2. 压测配置。

    选择需要测试的测试场景,编辑对应的配置文件,以读写测试为例:

    1
    vi workloads/workloada
    

    配置文件的具体参数项如下:

    表1 配置文件具体参数

    参数项

    参数具体含义

    recordcount

    YCSB load阶段加载的记录条数

    operationcount

    YCSB run阶段执行的操作总数

    workload

    workload实现类

    readallfields

    查询时是否读取记录的所有字段

    readproportion

    读操作的百分比

    updateproportion

    更新操作的百分比

    scanproportion

    插入操作的百分比

    requestdistribution

    请求分布模式,uniform、zipfian和latest三种分布模式

    mongodb.url

    待测试mongo实例的连接地址

    须知:

    此项为添加项。

    mongodb.database

    测试时使用的数据库名称,默认为ycsb

    须知:

    此项为添加项。

  3. 加载数据。
    1
    bin/ycsb load mongodb -threads 100 -P workloads/workloada
    
    图1 加载数据回显
    图2 加载数据回显

    返回字段Return=OK,则表示数据导入成功。

    命令参数说明:

    ycsb [command] [database] [options]

    • command选项:

      load:载入测试数据。

      run:执行测试过程。

      shell:交互模式。

    • database选项:指定测试的数据库场景,例如mongodb、cassandra、memcached等。
    • options选项:

      -P file :指定workload文件,相对路径或者绝对路径。

      -cp path :指定额外的Java classpath。

      -jvm-args args :指定额外的JVM参数。

      -p key=value :设置ycsb配置项,会覆盖workload文件的配置项。

      -s :运行时的中间状态打印到stderr中。

      -target n :表示1s中总共的操作次数。

      -threads n :设置ycsb client的并发测试线程数,默认是1,单线程。

  4. 执行测试。
    1
    bin/ycsb run mongodb -threads 100 -P workloads/workloada
    
    图3 执行测试回显
    图4 执行测试回显

    返回字段Return=OK,则表示测试完成,取“[OVERALL],Throughput”值作为测试指标。

    [OVERALL], RunTime(ms), 1123 # 测试过程耗时(毫秒)

    [OVERALL], Throughput(ops/sec), 8904.719501335709 # 测试过程中的吞吐量(ops/sec)

    [READ], Operations, 5020 # 执行read操作的总数

    [READ], AverageLatency(us), 4126.0304780876495 # 每次read操作的平均时延(微秒)

    [READ], MinLatency(us), 299 # 每次read操作的最小时延(微秒)

    [READ], MaxLatency(us), 168959 # 每次read操作的最大时延(微秒)

    [READ], 95thPercentileLatency(us), 6659 # 95% read操作的时延在6659微秒以内

    [READ], 99thPercentileLatency(us), 157311 # 99% read操作的时延在157311微秒以内

    [READ], Return=OK, 5020 # 返回成功,操作数5020

    [UPDATE], Operations, 4980 # 执行update操作的总数

    [UPDATE], AverageLatency(us), 3846.1317269076303 # 每次update操作平均时延(微秒)

    [UPDATE], MinLatency(us), 321 # 每次update操作的最小时延(微秒)

    [UPDATE], MaxLatency(us), 168575 # 每次update操作的最大时延(微秒)

    [UPDATE], 95thPercentileLatency(us), 6555 # 95% update操作的时延在6555微秒以内

    [UPDATE], 99thPercentileLatency(us), 26351 # 99% update操作的时延在26351微秒以内

    [UPDATE], Return=OK, 4980 # 返回成功,操作数4980