mongo記憶體筆記
記憶體分配策略:
記憶體 > 索引 + 熱資料 + 連線數*Stack(ulimit -a | grep stack ),另外,作業系統本身正常運轉也需要消耗一部分記憶體
虛擬記憶體大小限制
# 檢視
shell> ulimit -a | grep 'virtual'
# 關閉,避免OOM
shell> ulimit -v unlimited
連線佔用記憶體
# 檢視當前連線數
mongo> db.serverStatus().connections
每個連線預設分配記憶體為Stack
# 檢視Linux下預設的Stack
shell> ulimit -a | grep stack
stack size (kbytes, -s) 10240
# 設定Stack
# 注:ulimit的使用是有上下文的,最好放在MongoDB的啟動指令碼里。
shell> ulimit -s 1024
檢視資料、索引大小
mongo> db.stats()
{
"dataSize" : 1004862191980,
"indexSize" : 1335929664
}
記憶體釋放
重啟服務
內建closeAllDatabases命令
mongo> use adminmongo> db.runCommand({closeAllDatabases:1})
調整核心引數drop_caches
shell> sysctl -w vm.drop_caches=1
記憶體監控使用情況
mongo命令列
mongo> db.serverStatus().mem:{"resident" : 22346,"virtual" : 1938524,"mapped" : 962283}
mongostat命令
shell> mongostatmapped vsize res faults940g 1893g 21.9g 0
其中記憶體相關欄位的含義是:mapped:對映到記憶體的資料大小visze:佔用的虛擬記憶體大小res:佔用的實體記憶體大小注:如果操作不能在記憶體中完成,結果faults列的數值不會是0,視大小可能有效能問題。在上面的結果中,vsize是mapped的兩倍,而mapped等於資料檔案的大小,所以說vsize是資料檔案的兩倍之所以會這樣,是因為本例中,MongoDB開啟了journal,需要在記憶體裡多對映一次資料檔案,如果關閉journal,則vsize和mapped大致相當。如果想驗證這一點,可以在開啟或關閉journal後,透過pmap命令來觀察檔案對映情況:shell> pmap $(pidof mongod)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26250550/viewspace-1821314/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- WWDC筆記-記憶體策略筆記記憶體
- 虛擬記憶體筆記記憶體筆記
- 筆記本記憶體和硬碟選購攻略 筆記本如何選擇記憶體和硬碟?筆記記憶體硬碟
- pprof 分析mysqld 記憶體呼叫(筆記)MySql記憶體筆記
- 7.6下午筆記(記憶體)筆記記憶體
- MJiOS底層筆記--記憶體管理iOS筆記記憶體
- Redis In Action 筆記(七)降低記憶體使用Redis筆記記憶體
- JVM讀書筆記之記憶體管理JVM筆記記憶體
- iOS開發筆記(一):記憶體管理iOS筆記記憶體
- Redis記憶體——記憶體消耗(記憶體都去哪了?)Redis記憶體
- 記憶體_大頁記憶體記憶體
- 筆記本記憶體條怎麼裝?筆記本裝記憶體條的方法步驟、及注意事項筆記記憶體
- JVM學習筆記——自動記憶體管理JVM筆記記憶體
- Objective C 記憶體管理(上)學習筆記Object記憶體筆記
- Aerospike 分散式記憶體資料庫 筆記ROS分散式記憶體資料庫筆記
- [筆記] 解碼Nginx:記憶體池(Memory Pool)筆記Nginx記憶體
- 北航OS課程筆記--三、記憶體管理筆記記憶體
- GC最佳化:棧記憶體、span、NativeMemory、指標、池化記憶體 筆記GC記憶體指標筆記
- 記憶體管理 記憶體管理概述記憶體
- 【記憶體管理】記憶體佈局記憶體
- 讀書筆記2-記憶體優化篇筆記記憶體優化
- XV6學習筆記(2) :記憶體管理筆記記憶體
- JVM讀書筆記之java記憶體結構JVM筆記Java記憶體
- 作業系統——記憶體管理學習筆記作業系統記憶體筆記
- Object C學習筆記4-記憶體管理Object筆記記憶體
- 遊戲記憶體對比普通記憶體區別 遊戲記憶體和普通記憶體相差大嗎?遊戲記憶體
- 實體記憶體和虛擬記憶體記憶體
- Go:記憶體管理與記憶體清理Go記憶體
- Java的記憶體 -JVM 記憶體管理Java記憶體JVM
- 聊聊 記憶體模型與記憶體序記憶體模型
- 自動共享記憶體管理 自動記憶體管理 手工記憶體管理記憶體
- 記憶體管理篇——實體記憶體的管理記憶體
- linux記憶體管理(一)實體記憶體的組織和記憶體分配Linux記憶體
- 筆記 mongo查詢慢日誌,建立索引筆記Go索引
- Java虛擬機器記憶體模型學習筆記Java虛擬機記憶體模型筆記
- JVM讀書筆記之垃圾收集與記憶體分配JVM筆記記憶體
- 筆記-更深層次的瞭解iOS記憶體管理筆記iOS記憶體
- 《深度探索c++記憶體模型》讀書筆記 (二)C++記憶體模型筆記