设为首页 加入收藏

TOP

MongoDB千万级插入数据测试(MMO在线游戏应用场合)
2014-11-24 00:41:11 来源: 作者: 【 】 浏览:9
Tags:MongoDB 千万 插入 数据 测试 MMO 在线游戏 应用 场合
一、筹备

我们要做一次千万级的MONGODB测试,操作系统选用CentOS 5.5 64位版,基本模拟实际的使用环境,采用单机集群模型(测试单机多CPU情况下的实际效果)。

测试基准数据:

服务器配置:
Intel Xeon E5506 * 2 共8核
内存是8GB DDR3

应用程序:
编程语言:C++
编译器:GCC 4.4.5
BOOST版本:1.47
MONGODB版本:2.02

测试目的:
为测试在大量数据插入时的延迟以及寻找相应的解决方案。
目标应用场合:
无分区式MMOSLG(目标在线用户100万~ 300万)

二、测试效果

直接测试插入数据的行为,测试插入数据10000000,总耗费时间:7.6分钟,平均每条插入时间0.0469秒。
最终资源所占硬盘大小1.2GB,存放数据大小1.5GB,索引大小0.3GB

三、测试结果

测试中发现,如果每天拥有大量数据在整个游戏世界中插入时,在100万条数据时耗费时间均很少,当数量达到300万以上是耗时略大。
测试中在某次测试阶段同时开放读取数据,即同时读取数据以及写入数据,未发现因此而导致性能急剧下降,略微有所减缓。


四、相关解决方案

后来我采用异步的方式,使用一个线程池同步执行所有的插入以及读入行为,发现其效率明显提升,未因为MONGODB本身的性能而导致下降。
但线程数不可过多,最好为当前CPU数/ 2,最佳,如果超过此数字会导致MongoDB本身程序的性能下降。

摘自 K.O Angel 的专栏
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇数据库索引碎片的自动重建或重组 下一篇having count删除重复数据只保留..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: