`
LJ你是唯一LT
  • 浏览: 243404 次
社区版块
存档分类
最新评论

mongodb测试小结-tina

阅读更多
                         mongodb测试小结

一、基础配置
1)硬件
双核  8G  100G硬盘
2)集群
1 台mongos、config服务器;3台分片;1台独立mongod存放count_temp统计表

二、测试结果
1)中间数据的处理:
3台分片机上 分别跑3个进程,共9个进程,约为430w/h,5000w的数据大概需要11.6h
3台分片机上 分别跑5个进程,共15个进程,约为840w/h,5000w的数据大概需要6h
(5个进程会比3个进程分得更平均,速度也要快许多)

2)count_temp统计:
1台独立mongod,开单个进程 1800w/h ,5000w数据大概需要2.7h
                 开两个进程 2300w/h ,5000w数据大概需要2.1h

三、负载
数据的插入和中间数据的处理,机器的负载都不高:
A、 插入主要消耗内存,跟前面的4G测试相比,要稍微低一些
B、 中间数据的处理通过php进行,会占用较高的cpu,但每台分片机大概也就在20%左右

数据的统计,cpu会比较高:
单进程统计,需要消耗30-40%左右的cpu;2个进程, cpu约是70-80%
因此也不敢开太多,这比之前多台机器分别进行单进程统计稍微慢一点点,但持续时间并不长,且统计程序独立运行,速度还是可以的。


四、测试总结
4G和8G测试对比,效果并不显著,速度没提升上来是受到php的处理和统计的速度限制;
4G和8G的内存,mongo的插入都是非常快的,预计至少可以支撑1亿左右的数据插入;
后来我们考虑到中间数据单独存放,会比在分片上又插入又读取要方便快捷,因此改变策略,
加上php使用了多进程,速度显著提升,比之前3000kw/22h 要快了一倍不止。

8G多一个分片的对比,效果也不显著,应该受到了各分片之间的数据会互相迁移的影响,分片越多,需要迁移的就越多,某种程度上,反而会降低了效率。
但多个分片,对最终表count_temp的统计是有利的。

结论:就最后一次测试的方案,进行syslog-ng日志数据分国家的统计是可行的。配置方面,保存一个星期的数据进行统计没什么问题。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics