设为首页 收藏本站
查看: 735|回复: 0

[经验分享] 【转】使用YCSB测试Mongodb性能的方法简介

[复制链接]

尚未签到

发表于 2017-12-16 11:11:36 | 显示全部楼层 |阅读模式
【转】使用YCSB测试Mongodb性能的方法简介
    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文件。        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  posted on 2017-05-12 16:57 wuhl_89 阅读(...) 评论(...)  编辑 收藏

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-424659-1-1.html 上篇帖子: mongodb 的简单使用 下篇帖子: mongostat和mongotop对mongodb数据库运行状态进行监控
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表