記一次MongoDB伺服器卡死分析解決思路

2021-08-15 13:13:00 字數 1187 閱讀 2491

問題:

mongodb伺服器卡死,無法ping通,無法遠端連線,無法登陸終端,終端顯示:

原因分析:

原因1:系統快取過大引起記憶體使用率高

原因2:核心bug或者核心引數設定不合理

原因3:mongodb引數配置不合理

解決方法:

1.修改記憶體強制**等級

先設定

# echo 3 > /proc/sys/vm/drop_caches

再設定

# echo 1 > /proc/sys/vm/drop_caches

2.增加核心引數

# vi /etc/sysctl.conf

##核心預設引數(迴圈超時)

kernel.watchdog_thresh=30

##記憶體**

vm.min_free_kbytes=409600

vm.vfs_cache_pressure=200

3.核心迴圈超時(s)

# echo 30 >/proc/sys/kernel/watchdog_thresh

4.修改mongodb.conf

# vi /usr/local/mongodb/conf/mongodb.conf (以實際目錄為準)

#限制記憶體使用

5.關閉大葉記憶體

6.定時檢視日誌:

# grep 『soft lockup』 /var/log/messages*

7.設定死迴圈宕機重啟

# echo 1 > /proc/sys/kernel/softlockup_panic

持續觀察中。。。

記一次Golang routine卡死

go語言最方便的地方在於可以自由自在的起routine,並且不用自己維護佇列。乙個很簡單的處理模型,針對於長連線活動平凡的鏈結獨立routine進行處理,方便同一連線上下文關聯,read routine a講接收到的訊息解包生成訊息丟到對應socket的routine b channel中進行處理,...

記一次伺服器事故

mysql資料庫報錯 can t create write to file tmp sql 6ccc 0.myi 在開始刪除之後,所有服務就已經恢復正常執行了,接下來就是優化那個session了,哎又是埋坑.最後附上inode擴容的方法 但是需要注意,手動擴inode,一般是新建分割槽時設定的,該操...

記一次伺服器專案遷移

今天被分配了伺服器專案遷移的任務,現在還在傳輸,閒著沒事就寫下總結,也算是一種學習 開啟虛擬機器,訪問需要遷移的伺服器 賬號密碼請向領導或運維索要 找到需要遷移的專案,一般在home 公司名 專案名,例如我所在的公司服務放置在home che tomcat epc 10100複製專案 訪問被遷移到的...