当前位置:数据库 > mongodb >>

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 的专栏
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,