转自:http://blog.sina.com.cn/s/blog_48c95a190102v9kg.html
        YCSB(Yahoo! Cloud Serving Benchmark)是雅虎开源的一款通用的性能测试工具。通过这个工具我们可以对各类NoSQL产品进行相关的性能测试,包括:HBase、 Cassandra、Mongodb、Voldemort、Redis等。通过配置workload文件,YCSB可以灵活的模拟不同的测试负载和读写模 式,以下为YCSB测试Mongo性能步骤的简单总结。
 
       首先,下载YCSB。在YCSB的github项目下可以查看和下载最新源码和所有Tag版本,目前最新的Tag版本为 0.1.4(https://github.com/brianfrankcooper/YCSB/archive/0.1.4.zip)。下载后的 ycsb-0.1.4.zip解压缩后即可直接使用,无需编译安装。在解压后的目录下,主要使用的两个目录是bin和workloads,前者包含了 ycsb可执行文件,后者包含了工具自带的各类workload文件。
 
   
 其次,配置YCSB。在使用YCSB对Mongodb进行压
力测试前,必须进行一些必要的配置。可以根据测试需要选择workloads目录下的任意已有workload文件,添加待测试的mongo实例信息。这
里假定使用workloada文件,且待测试的mongo实例运行在本地的27017端口上,那么相应的配置文件内容如下:
mongodb.url=mongodb://localhost:27017
# 待测试mongo实例的数据库地址
mongodb.database=ycsb
# 测试时使用的数据库名称
mongodb.writeConcern=normal
# 写入安全性为常规
recordcount=10000000
# 测试数据集的记录条数
operationcount=10000000
# 测试过程中执行的操作总数
workload=com.yahoo.ycsb.workloads.CoreWorkload
# workload实现类
readallfields=true
# 查询时是否读取记录的所有字段
readproportion=0.5
# 读操作的百分比
updateproportion=0.5
# 更新操作的百分比
scanproportion=0
# 扫描操作的百分比
insertproportion=0
# 插入操作的百分比 
requestdistribution=zipfian
# 请求分布模式
 
 
   
 再次,运行YCSB。YCSB的运行分为两个阶段:测试数据加载阶段和测试操作执行阶段,前者用来加载测试数据集,后者用来执行正真的测试操作,两个阶段都要使用上面的配置文件。数据加载的执行命令为:./bin/ycsb
load mongodb -threads 100 -P
workloads/workloada,即根据workloada的配置要求启动100个线程并发加载测试数据,在执行完成后YCSB会打印出类似于下面的数据加载性能统计数据:
[OVERALL],
RunTime(ms), 905346.0 # 数据加载所用时间(毫秒)
[OVERALL],
Throughput(ops/sec), 11045.500836144412 #
加载操作的吞吐量(ops/sec)
[INSERT],
Operations, 10000000 # 执行insert操作的总数
[INSERT],
AverageLatency(us), 9024.8155659 #
每次insert操作的平均延时(微秒)
[INSERT],
MinLatency(us), 139 # 所有insert操作的最小延时(微秒)
[INSERT],
MaxLatency(us), 1022876 # 所有insert操作的最大延时(微秒)
[INSERT],
95thPercentileLatency(ms), 27 #
95%的insert操作延时在27毫秒以内
[INSERT],
99thPercentileLatency(ms), 42 #
99%的insert操作延时在42毫秒以内
[INSERT],
Return=0, 10000000 # 成功返回数10000000
[INSERT],
0, 3793117 # 以下insert操作在各个延时时间区域的分布情况
[INSERT],
1, 37171
[INSERT],
2, 8035
[INSERT],
3, 6294
...
[INSERT],
999, 0
[INSERT],
>1000, 5
执行压力测试的命令为:./bin/ycsb
run mongodb -threads 100 -P
workloads/workloada,即根据workloada的配置要求启动100个线程并发执行测试操作,在执行完成后YCSB会打印出类似于下面的性能统计数据,统计项说明可参照上文:
[OVERALL],
RunTime(ms), 526774.0
[OVERALL],
Throughput(ops/sec), 18983.472988416284
[UPDATE],
Operations, 500675
[UPDATE],
AverageLatency(us), 6493.521553902232
[UPDATE],
MinLatency(us), 147
[UPDATE],
MaxLatency(us), 1096742
[UPDATE],
95thPercentileLatency(ms), 18
[UPDATE],
99thPercentileLatency(ms), 62
[UPDATE],
Return=0, 500675
[UPDATE],
0, 62719
[UPDATE],
1, 69850
...
[UPDATE],
999, 0
[UPDATE],
>1000, 16
[READ],
Operations, 9499325
[READ],
AverageLatency(us), 5173.494588510236
[READ],
MinLatency(us), 87
[READ],
MaxLatency(us), 1113170
[READ],
95thPercentileLatency(ms), 17
[READ],
99thPercentileLatency(ms), 54
[READ],
Return=0, 9499325
[READ],
0, 3394330
[READ],
1, 1187011
...
[READ],
999, 1
[READ],
>1000, 294
 

YCSB benchmark测试mongodb性能——和web服务器测试性能结果类似的更多相关文章

  1. YCSB benchmark测试cassandra性能——和web服务器测试性能结果类似

    转自:http://www.itdadao.com/articles/c15a531189p0.html http://www.cnblogs.com/bettersky/p/6158172.html ...

  2. 性能优化——Web前端性能优化

    核心知识点: 1.排查网站性能瓶颈的手法:分析各个环节的日志,找出异常部分 2.Web前端:网站业务逻辑之前的部分(浏览器.图片服务.CDN) 3.优化手段 1)浏览器优化 (1)减少http请求 a ...

  3. 【性能】web提升性能的小总结

    1. 异步加载js文件,判断文件是否已加载,不重复加载 if (typeof echarts === 'undefined') { console.log('异步加载echarts'); $.getS ...

  4. 【前端性能】Web 动画帧率(FPS)计算

    我们知道,动画其实是由一帧一帧的图像构成的.有 Web 动画那么就会存在该动画在播放运行时的帧率.而帧率在不同设备不同情况下又是不一样的. 有的时候,一些复杂或者重要动画,我们需要实时监控它们的帧率, ...

  5. 前端进阶(1)Web前端性能优化

    前端进阶(1)Web前端性能优化 Web前端性能优化, 不仅能够改善站点的用户体验,并且能够节省相当的资源利用.下面将从1)服务器.2)html内容.3)css. 4)javascript. 5)图片 ...

  6. 使用YCSB测试mongodb

    项目里面需要对mongodb的性能进行测试,看了下网上很多做法都是使用YCSB进行测试,因此开始学习使用YCSB. 参考资料: YCSB github地址:https://github.com/bri ...

  7. Web 应用性能和压力测试工具 Gor - 运维生存时间

    Web 应用性能和压力测试工具 Gor - 运维生存时间 undefined 无需花生壳,dnspod实现ddns - 推酷 undefined

  8. Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程 - VPS侦探

    Web服务器性能/压力测试工具http_load.webbench.ab.Siege使用教程 - VPS侦探 http://soft.vpser.net/test/http_load/http_loa ...

  9. Web服务器性能压力测试工具http_load、webbench、ab、Siege使用教程

    Web服务器性能压力测试工具http_load.webbench.ab.Siege使用教程 作者: feng 日期: 2012/07/25 发表评论 (0) 查看评论   一.http_load 程序 ...

随机推荐

  1. Java中Collections和Collection的区别

    java.util.Collection Collection 层次结构 中的根接口.Collection 表示一组对象,这些对象也称为 collection 的元素.一些 collection 允许 ...

  2. 部署Node.js的应用

    原创:作者 mashihua 最近Node.js很火,让很多的前端看到了可以直接从前端写到后端的希望.但是每次部署一个Node.js的应用却让前端苦恼不已.每次登陆服务器,用自己不熟悉的方式从版本控制 ...

  3. 向txt文件中写入内容(覆盖重写与在末尾续写+FileOutputStream与FileWriter)(转发:https://blog.csdn.net/bestcxx/article/details/51381460)

    !!!! 读取txt文件中的内容 import java.io.BufferedReader; import java.io.File; import java.io.FileReader; /** ...

  4. 利用SimpleHttpServer+urllib传文件

    1.服务器 利用SimpleHTTPServer,命令行运行 python -m SimpleHTTPServer 2.客户端 利用urllib等,方法有3个 import urllib print ...

  5. curl简介、安装及使用

    目录 curl简介 curl安装 curl使用 curl简介 curl是Linux下一个强大的文件传输工具,它利用URL语法在命令行方式下工作,支持文件上传和下载. curl安装 Ubuntu系统键入 ...

  6. Node.js学习笔记(3):NPM简明教程

    Node.js学习笔记(3):NPM简明教程 NPM常用操作 更新NPM版本 npm install npm -g -g,表示全局安装.我们可以指定更新版本,只需要在后面填上@版本号即可,也可以输入@ ...

  7. LeetCode:前K个高频元素【347】

    LeetCode:前K个高频元素[347] 题目描述 给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [ ...

  8. python之路 前段之html,css

    一.HTML 超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准, 它通过标记符号来标记要显示的网页中的各个部分.网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏 ...

  9. Wannafly交流赛1 _A_有理数 【水】

    Wannafly交流赛1 A有理数 [水] 链接:https://www.nowcoder.com/acm/contest/69/A 来源:牛客网 题目描述 有一个问题如下: 给你一个有理数v,请找到 ...

  10. PAT 天梯赛 L1-001 【水】

    L1-001. Hello World 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 这道超级简单的题目没有任何输入. 你只需要在一行中输 ...