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日志資料分國家的統計是可行的。配置方面,儲存一個星期的資料進行統計沒什麼問題。