MongoDB 異常當機與引數cacheSizeGB
近期,處理一MongoDB異常當機故障,與MongoDB引擎引數cacheSizeGB相關,該引數用來限制MongoDB的wiredTiger引擎使用記憶體的量。下邊是故障處理過程,供以後問題處理參考。
業務方反饋:MongoDB在2019.9.16 9:16:00異常當機,經手工正常重啟,但是檢視mongodb日誌沒有發現異常
報錯。
問題排查過程:
1、觀察mongodb的日誌,發現除了手工重啟的記錄,並沒有報錯日誌
2、根據mongodb執行的機制,它是消耗記憶體的大戶,並且執行在作業系統上的應用軟體無報錯直接當機,
一般是與作業系統資源故障相關,如:主機記憶體、IO、網路等等。
3、檢視主機作業系統日誌,發現有OOM告警提示
--2019.9.16 9:17:10分,作業系統日誌提示:mongod invoked oom-killer
--2019.9.16 9:17:12分,作業系統日誌提示:作業系統swap空間耗盡
--2019.9.16 9:17:13分,作業系統日誌提示:mongod程式28232被kill掉,被kill時其佔用記憶體31G左右
4、看作業系統記憶體工32G
5、檢視mongod的啟動配置檔案,配置檔案中並沒有限制mongod記憶體使用量的引數cacheSizeGB
6、分析總結:
2019.9.16 9:17:10~9:17:13,主機記憶體和swap相繼耗盡,引起 oom-killer kill mongod,導致mongodb資料庫
無疾而終。建議客戶在mongodb的啟動配置檔案中加入mongod的記憶體使用限制引數cacheSizeGB。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29357786/viewspace-2657180/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 當機導致slave異常分析
- MongoDB引數MongoDB
- 計算階乘-當輸入的資料是帶小數時引發異常
- SQLServer mirror當機後error 9004異常處理SQLServerError
- MySQL Bug導致異常當機的分析流程MySql
- mongoDB當機修復MongoDB
- Kotlin藝術探索之引數和異常Kotlin
- 修改pfile引數檔案過程的異常
- 異常處理機制(二)之異常處理與捕獲
- Java 異常 隨機數 包裝類Java隨機
- python自定義異常,使用raise引發異常PythonAI
- 異常處理與異常函式函式
- tcbs_批量儲存過程_輸出引數out與異常的關係儲存過程
- MongoDB 查詢超時異常 SocketTimeoutExceptionMongoDBException
- Java 異常表與異常處理原理Java
- 異常機制與遮蔽除錯程式碼除錯
- 核心引數導致的備庫當機分析
- 記憶體管理實戰案例分析1:缺頁異常和檔案系統引發的當機記憶體
- Spring-RestTemplate之urlencode引數解析異常全程分析SpringREST
- Spring Boot統一異常處理以及引數校驗Spring Boot
- 【PARANETERS】Oracle異常恢復相關的隱含引數Oracle
- 線上ES叢集引數配置引起的業務異常案例分析
- Java異常機制Java
- oracle 11.2.0.4 rac節點異常當機之ORA-07445Oracle
- MongoDB啟動引數介紹MongoDB
- 手工指定CHANNEL與設定PARALLELISM引數的異同以及FILESPERSET引數的作用Parallel
- Java - 異常與FileJava
- kksfbc child completion與ksdxexeotherwait引發CPU使用異常AI
- C#規範整理·異常與自定義異常C#
- [譯] Ruby 2.6 Kernel 的system 方法增加是否丟擲異常引數。
- [譯] Ruby 2.6 增加了 Integer 和 Float 方法的異常引數
- MySQL:MGR修改max_binlog_cache_size引數導致異常MySql
- Mybatis單個引數的if判斷(針對異常:There is no getter for property..)MyBatis
- 主庫異常當機---從庫複製報fatal error 1236Error
- Linux基礎——BClinux8.2 排查vmcore異常當機問題Linux
- 異常處理機制
- nginx 常見引數以及重定向引數配置Nginx
- MongoDB啟動引數中文詳解MongoDB