mongodb 記憶體分析

來源:互聯網
上載者:User

標籤:linux mongo 記憶體 mem

要想瞭解mongo的記憶體機制就要先瞭解linux系統的記憶體分析。

第一步:先看看linux的記憶體參數都是怎麼說的

             total       used       free     shared    buffers     cachedMem:         11912       9045       2866          0         90       3406-/+ buffers/cache:       5549       6363 Swap:         2047         14       2033

total:實體記憶體總大小

used:使用了多少

free:剩餘多少

buffers:buffers是指高速緩衝區的大小,是一個空間大小的概念,運行程式常用的資料,在第一次運行

               時系統會把它們暫時緩衝在一個高速的儲存地區,以後再用時就直接從這個地區讀取資料供程

               序使用,存取這些資料的介質,因其讀寫速度比硬碟和記憶體要快得多,所以,buffers的大小對

               電腦運行速度的影響是很大的,但這些資料重啟電腦或關機後就會自動消失。

cached:cached是指緩衝的資料,是真正意義上的實在東西,例如你常用的程式,由於一些資料是這些

               程式運行經常要使用到的,系統就會把它們形成檔案,緩衝到一個特定的位置,下次你再運行

               該程式時,就會自動到緩衝的位置讀取資料供程式運行使用,儲存這些資料的地區是在電腦的

               硬碟上,理論上講讀寫速度是不變的,只是節省了尋找這些資料的時間而也,這樣也可間接地

               提高了電腦的運行效率。

Swap:當實體記憶體不夠使用的是,系統會在物理硬碟上切割一塊空間,當作記憶體使用量。


linux主機的真正可用記憶體是:真正可用記憶體=total-used-buffers-cached

系統中顯示的used是包括buffers和cached大小的,但是這兩個資料是可以被釋放的,所以真正使用了多少是:真正使用了的記憶體=used-buffers-cached


第二步:系統記憶體說的差不多了,那麼我們來看看mongo的記憶體是怎麼和系統配合的。

首先說mongo是一個比較坑但又叫人特別爽的資料庫,為什麼說坑“是因為它不釋放記憶體,你有100G的記憶體它也會給你吃滿”;為什麼說他爽“是因為它把資料放到記憶體中,所以100w的資料查詢會很快”;

那麼怎麼來判定mongo機器給的記憶體是否合理呢?下面給出公式:實體記憶體>mongo索引資料+mongo的熱資料    


還可以通過mongostat命令來監控MongoDB的記憶體使用量情況,如下所示:

shell> mongostatmapped vsize res faults 940g 1893g 21.9g 0

其中記憶體相關欄位的含義是:

mapped:映射到記憶體的資料大小

visze:佔用的虛擬記憶體大小

res:佔用的實體記憶體大小

註:如果操作不能在記憶體中完成,結果faults列的數值不會是0,視大小可能有效能問題。

在上面的結果中,vsize是mapped的兩倍,而mapped等於資料檔案的大小,所以說vsize是資料檔案的兩倍,之所以會這樣,是因為本例中,MongoDB開啟了journal,需要在記憶體裡多映射一次資料檔案,如果關閉journal,則vsize和mapped大致相當。


參考文檔:http://www.ttlsa.com/mongodb/mongodb-and-memory/

本文出自 “學習改變命運” 部落格,請務必保留此出處http://xinsir.blog.51cto.com/5038915/1960750

mongodb 記憶體分析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.