免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5550 | 回复: 1
打印 上一主题 下一主题

[MongoDB] 记一次MongoDB性能问题,附原理解析 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-02-22 20:18 |只看该作者 |倒序浏览
记一次MongoDB性能问题,附原理解析





本文转自淘宝数据库技术团队博客。对MongoDB最新的稳定版1.8版本和上个稳定版本1.6版本做了写入性能的测试对比。从测试来看,1.8版本对性能的改进还是卓有成效的。

原文链接:http://goo.gl/y0OES

在MongoDB 1.6.4的使用过程中,我们发现当文件系统cache用尽的时候MongoDB的写入性能会有非常大的波动。更为致命的是,偶尔还会发生持续20-30秒的写入阻塞。虽然MongoDB的设计非常先进,但是稳定性一直是我们头痛的一个问题。带着疑问我们参加了Mongo北京开发者聚会,会上10gen的工程师Alvin Richards建议测试一下MongoDB 1.8,据说在写锁上有所改进。
回到杭州后,我们在Redhat 6.0上重做了MongoDB 1.6.4和1.8.0-rc0的对比测试。测试的结果如下图所示:




这两张图的横坐标是时间轴(每个点代表10秒钟),纵坐标是插入速度(代表10秒内的平均速度)。
测试逻辑如下:

在zyy库下建立一个名为test的collection
在test的k字段上建立索引
开启测试程序并打点。该测试程序将开启10个线程对test进行并发写入。k由uuid调用生成,长度为37字节;v长度为1k。
从测试结果上看,MongoDB 1.8.0相对于1.6.4在写入性能上有所改进。首先,1.6.4除了预分配文件造成性能下降外,写入性能偶尔还会长时间降到0。而1.8.0基本没有出现写入性能降到0的情况,性能的最低点在于预分配文件。其次,从性能的稳定性上看,1.8.0的波动显然没有1.6.4那么夸张。在InnoDB做的类似测试也会出现类似波动,但是性能最低点不会降到MongoDB那么低。

总体而言,MongoDB 1.8.0-rc从功能和性能上都有所改进。期待release版本和新的存储引擎中。

具体测试代码见此:

http://pastie.org/1645946

论坛徽章:
0
2 [报告]
发表于 2012-02-24 17:10 |只看该作者
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP