zoukankan      html  css  js  c++  java
  • tair ldb存储引擎性能測试方案

    1. 性能測试环境

      在单机环境(一台dataserver)和分布式环境(多台dataserver)下分别进行測试,或仅仅在分布式环境下进行測试。

    2. 性能測试指标

    主要考量两个指标

    (1)服务端的极限QPS

    (2)单个操作的响应时间rt

    当然事实上还有其他不少指标,比如服务端的资源消耗情况、并发数等等。


    3. 性能測试方法

    主要针对tair ldb存储引擎在缓存了不同级别数据的前提下,加入了范围Bloomfilter支持的前后对 get_range接口測试的性能对照情况。

    考虑到网络方面的负载。每次操作应该反复N次取个稳定值。详细流程初步设计例如以下:

    (1)当dataserver数据库为空时,通过tairclient向dataserver服务端put一定量的数据。

    (2)在(1)完毕后,以单线程通过tairclient进行get_range调用向dataserver获取数据,记录N次操作所消耗的时间。

    (3)并发多个线程通过tairclient的get_range调用向dataserver获取数据,每一个线程完毕N次的操作。记录服务器的QPS大小、响应时间等。

    (4)不断增大dataserver的存储数据量,反复进行(1)~(3)的測试,形成未加入范围Bloomfilter支持的性能測试报告。

    (5)对tair ldb加入范围Bloomfilter支持后。再反复进行(1)~(4)的操作。终于形成两者的性能对照測试报告并做详细的分析。

    4. 性能測试工具

    单机下经常使用的性能測试工具有: GNU的gprof,IBM的PurifyPlus。Intel的VTune。AMD的CodeAnalyst,还有Linux下的OProfile/perf。对于这些工具能否应用到分布式系统中还不甚了解。专门针对分布式环境的性能測试工具,相关资料较少。仅仅看到一个基于Java的Jmeter。淘宝的DST。

    我们的需求相对较简单,使用这些工具反而添加了其复杂性,因此我们决定自己写一个简单的性能測试工具,基本思路是调用tair client的api,启动多线程去压。然后记录一些压測结果。类似rocksdb/tools以下的db_stress.cc就是这样的思路。还有leveldb下的各个test測试也是值得參考的资料,比方db_bench.cc基測程序。

  • 相关阅读:
    linux软件必须安装到 /usr,/usr/local/ 吗?
    linux命令ps aux|grep xxx详解
    vim 命令,实用
    @Autowired 与@Resource的区别
    srpingmvc 上传图片到服务器
    Git-Windows安装初始
    python判断句子是否匹配某种模式
    50. Pow(x, n)
    49. Group Anagrams
    48. Rotate Image
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7147205.html
Copyright © 2011-2022 走看看