自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

還在擔心服務(wù)器進程被OOM?只需一招,即可避免

運維 服務(wù)器運維
如何防止重要的系統(tǒng)進程觸發(fā)(OOM)機制而被殺死呢?只需要一招,就可以輕松避免。

問題描述

Linux 內(nèi)核有個機制叫 OOM killer(Out-Of-Memory killer),該機制會監(jiān)控那些占用內(nèi)存過大,尤其是瞬間很快消耗大量內(nèi)存的進程,為了防止內(nèi)存耗盡而內(nèi)核會把該進程殺掉。

典型的情況是:某天一臺機器突然 ssh 遠程登錄不了,但能 ping 通,說明不是網(wǎng)絡(luò)的故障,原因是 sshd 進程被 OOM killer 殺掉了(多次遇到這樣的假死狀況)。重啟機器后查看系統(tǒng)日志「/var/log/messages」會發(fā)現(xiàn)「Out of Memory: Kill process 1865(sshd)」類似的錯誤信息。

[[274042]]

如何防止重要的系統(tǒng)進程觸發(fā)(OOM)機制而被殺死呢?只需要一招,就可以輕松避免。

[[274043]]

設(shè)置參數(shù)「/proc/PID/oom_adj為-17」,可臨時關(guān)閉 Linux 內(nèi)核的 OOM 機制。內(nèi)核會通過特定的算法給每個進程計算一個分數(shù)來決定殺哪個進程,每個進程的 OOM 分數(shù)可以在「/proc/PID/oom_score」中找到。

處理辦法

1. 方法一:設(shè)置參數(shù)/proc/PID/oom_adj為-17

如何防止mongod被殺,可以這樣操作:

(1) 編寫腳本文件oomadj.sh,內(nèi)容如下:

  1. #!/bin/bash 
  2. netstat -ntlup |grep mongod |awk '{print$NF}' |awk -F '/' '{print$(NF-1)}' |while read PID; 
  3. do 
  4. echo -17 >/proc/$PID/oom_adj; 
  5. done 

(2) 設(shè)置定時計劃

  1. [root@mnkj-mongodb-01 ~]crontab -e 
  2. */1 * * * * /root/oomadj.sh 

還在擔心服務(wù)器進程被OOM?只需一招,即可避免

至于為什么用-17而不用其他數(shù)值(默認值為0),這個是由linux內(nèi)核定義的,查看內(nèi)核源碼可知:

以 linux-3.3.6 版本的 kernel 源碼為例,路徑為「linux-3.6.6/include/linux/oom.h」,閱讀內(nèi)核源碼可「oom_adj」的可調(diào)值為 15 到 -16,其中 15 最大-16 最小,-17 為禁止使用OOM?!竜om_score」為 2 的 N 次方計算出來的,其中 N 就是進程的「oom_adj」值,所以「oom_score」的分數(shù)越高就越會被內(nèi)核優(yōu)先殺掉。

2. 方法二:修改內(nèi)核參數(shù)禁止OOM機制

  1. # sysctl -w vm.panic_on_oom=1 
  2. vm.panic_on_oom = 1 //1表示關(guān)閉,默認為0表示開啟OOM 
  3. # sysctl -p 

注意事項

注意:

  • Kernel-2.6.26之前版本的 oomkiller 算法不夠精確,RHEL 6.x 版本的 2.6.32 可以解決這個問題。
  • 子進程會繼承父進程的 oom_adj。
  • OOM 不適合于解決內(nèi)存泄漏(Memory leak)的問題。
  • 有時 free 查看還有充足的內(nèi)存,但還是會觸發(fā) OOM,是因為該進程可能占用了特殊的內(nèi)存地址空間。

OOM killer 是保證系統(tǒng)內(nèi)存不被個別進程消耗殆盡非常實用的機制,但是在實際工作除了進程運行過多會造成內(nèi)存占用過高,還有很多其他的因素比如:訪問增多、遭受攻擊等...

這時我們不僅要使用好 OOM killer,更需要關(guān)注服務(wù)器的資源使用情況,需要完善的實時監(jiān)控體系,能夠?qū)τ谙到y(tǒng)存在問題能夠及時的發(fā)現(xiàn)并處理,保證業(yè)務(wù)穩(wěn)定運行。

 

責任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2021-07-02 15:43:58

服務(wù)器中毒黑客攻擊

2009-08-14 17:01:27

2011-11-25 13:52:45

dll后門木馬bits

2010-05-31 10:34:00

Windows下配置S

2020-08-13 09:23:59

瀏覽器Chrome下載

2021-06-28 14:13:34

OOM內(nèi)存事故

2011-07-27 10:30:27

2021-07-28 14:35:54

區(qū)塊鏈服務(wù)器DDoS

2009-10-20 10:31:46

虛擬機物理服務(wù)器

2015-01-23 10:45:23

2023-08-15 07:30:33

AMD緩存PCIe

2009-01-11 09:27:00

呼叫中心服務(wù)

2013-07-30 11:24:33

SAP“簡化IT 一招

2018-06-27 10:10:34

APP評分彈窗蘋果

2018-03-18 23:34:57

2017-05-28 09:00:23

數(shù)據(jù)中心服務(wù)器超融合

2020-06-05 14:52:27

寧暢

2010-06-08 10:26:19

惠普Proliant G7服務(wù)器

2021-11-22 11:30:37

JavaScript代碼瀏覽器

2019-01-03 08:14:20

路由器系統(tǒng)后臺網(wǎng)絡(luò)
點贊
收藏

51CTO技術(shù)棧公眾號