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

简介:
转自: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
 













本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/6282795.html ,如需转载请自行联系原作者


相关文章
|
机器学习/深度学习 JavaScript 前端开发
深入探索WebAssembly:提升Web应用的性能
【10月更文挑战第15天】深入探索WebAssembly:提升Web应用的性能
427 3
|
9月前
|
编解码 缓存 监控
如何提高类Web开发范式的性能?
如何提高类Web开发范式的性能?
|
12月前
|
运维 NoSQL Cloud Native
国内独家|阿里云首发MongoDB 8.0,性能提升“快”人一步
阿里云作为MongoDB的最佳战略合作伙伴,在国内独家发布了8.0版本,支撑广大用户进一步提升业务效率。
|
存储 NoSQL MongoDB
从 MongoDB 到 时序数据库 TDengine,沃太能源实现 18 倍写入性能提升
沃太能源是国内领先储能设备生产厂商,数十万储能终端遍布世界各地。此前使用 MongoDB 存储时序数据,但随着设备测点增加,MongoDB 在存储效率、写入性能、查询性能等方面暴露出短板。经过对比,沃太能源选择了专业时序数据库 TDengine,生产效能显著提升:整体上,数据压缩率超 10 倍、写入性能提升 18 倍,查询在特定场景上也实现了数倍的提升。同时减少了技术架构复杂度,实现了零代码数据接入。本文将对 TDengine 在沃太能源的应用情况进行详解。
582 0
|
前端开发 JavaScript UED
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势,包括样式表优化、DOM操作减少、图像优化等技术,并分析了电商网站的具体案例,强调了技术演进对Web性能的深远影响。
232 5
|
NoSQL 容灾 MongoDB
MongoDB主备副本集方案:两台服务器使用非对称部署的方式实现高可用与容灾备份
在资源受限的情况下,为了实现MongoDB的高可用性,本文探讨了两种在两台服务器上部署MongoDB的方案。方案一是通过主备身份轮换,即一台服务器作为主节点,另一台同时部署备节点和仲裁节点;方案二是利用`priority`设置实现自动主备切换。两者相比,方案二自动化程度更高,适合追求快速故障恢复的场景,而方案一则提供了更多的手动控制选项。文章最后对比了这两种方案与标准三节点副本集的优缺点,指出三节点方案在高可用性和数据一致性方面表现更佳。
1397 5
|
中间件 Go API
Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架
本文概述了Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架。
1733 1
|
机器学习/深度学习 缓存 监控
利用机器学习优化Web性能和用户体验
【10月更文挑战第16天】本文探讨了如何利用机器学习技术优化Web性能和用户体验。通过分析用户行为和性能数据,机器学习可以实现动态资源优化、预测性缓存、性能瓶颈检测和自适应用户体验。文章还介绍了实施步骤和实战技巧,帮助开发者更有效地提升Web应用的速度和用户满意度。
|
机器学习/深度学习 编解码 JavaScript
探索WebAssembly:加速Web应用性能的神奇引擎
探索WebAssembly:加速Web应用性能的神奇引擎

推荐镜像

更多