【原創測試】MongoDB千萬級插入資料測試(MMO線上遊戲應用場合)

來源:互聯網
上載者:User

標籤:

一、籌備

我們要做一次千萬級的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本身程式的效能下降。

 

【原創測試】MongoDB千萬級插入資料測試(MMO線上遊戲應用場合)

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.