如何檢視程序OOM killer

2022-12-20 16:40:24 字數 2141 閱讀 2208

1樓:愛可生雲資料庫

oom killer(out of memory killer) 是當系統記憶體嚴重不足時 linux 核心採用的殺掉程序,釋放記憶體的機制。

oom killer 通過檢查所有正在執行的程序,然後根據自己的演算法給每個程序一個 badness 分數,擁有最高 badness 分數的程序將會在記憶體不足時被殺掉。

它打分的演算法如下:

某一個程序和它所有的子程序都佔用了很多記憶體的將會打一個高分。

為了釋放足夠的記憶體來解決這種情況,將殺死最少數量的程序(最好是一個程序)。

核心程序和其他較重要的程序會被打成相對較低的分。

上面打分的標準意味著,當 oom killer 選擇殺死的程序時,將選擇一個使用大量記憶體,有很多子程序且不是系統程序的程序。

簡單來講,oom-killer 的原則就是損失最小、收益最大,因此它會讓殺死的程序數儘可能小、釋放的記憶體儘可能大。在資料庫伺服器上,mysql 被分配的記憶體一般不會小,因此容易成為 oom-killer 選擇的物件。

「既然發生了 oom,那必然是記憶體不足,記憶體不足這個問題產生原因很多。

首先第一個就是 mysql 自身記憶體的規劃有問題,這就涉及到 mysql 相應的配置引數。

另一個可以想到的原因就是一般部署 mysql 的伺服器,都會部署很多的監控和定時任務指令碼,而這些指令碼往往缺少必要的記憶體限制,導致在高峰期的時候佔用大量的記憶體,導致觸發 linux 的 oom-killer 機制,最終 mysql 無辜躺槍犧牲。」

linux oom 記憶體超過多少會被kill

2樓:網友

oom_killer是linux自我保護的方式,當記憶體不足時不至於出現太嚴重問題,有點壯士斷腕的意味。

在kernel ,記憶體不足將喚醒oom_killer,挑出/proc//oom_score最大者並將之kill掉。

為了保護重要程序不被oom-killer掉,我們可以:echo -17 > proc//oom_adj,-17表示禁用oom

我們也可以對把整個系統的oom給禁用掉:

sysctl -w (預設為0,表示開啟)

sysctl -p

值得注意的是,有些時候 free -m 時還有剩餘記憶體,但還是會觸發oom-killer,可能是因為程序佔用了特殊記憶體地址。

平時我們應該留意下新進來的程序記憶體使用量,免得系統重要的業務程序被無辜牽連。

可用 top m 檢視最消耗記憶體的程序,但也不是程序一超過就會觸發oom_killer

引數/proc/sys/vm/overcommit_memory可以控制程序對記憶體過量使用的應對策略。

當overcommit_memory=0 允許程序輕微過量使用記憶體,但對於大量過載請求則不允許(預設)

當overcommit_memory=1 永遠允許程序overcommit

當overcommit_memory=2 永遠禁止overcommit

ref:

如何分析linux的oom-killer資訊

3樓:迪蒙智慧交通

-hup是傳送hup訊號給程序1234,然後標準輸出重定向到,標準錯誤重定向到,2是標準錯誤的file handler,1是標準輸出。

如何理解linux中的oom機制

linux程序被oom killer怎麼查日誌

如何避免mysql被oom-killer殺死

4樓:想為自己拼次

taskiller可以通過點選程式圖示來一鍵關閉正在執行的程式,也可以通過它來切換程式。長按可檢視程式詳情,非常的方便。taskiller可以釋放記憶體,保持android手機更流暢的執行。

俗稱「任務終結者」

怎麼解決

如何防止android app被kill

5樓:瞑空

加入白名單,或者換個運存4g以上的手機。

6樓:

android執行機制就是這樣,沒有辦法。

怎麼獲取程序C如何用c獲取某個程序

return 0 do while 1 closehandle hsnapshot return id 上面的函式通過程式獲取id 有這個id就可以操作這個程序了 比如,關閉一個程序 exe dword dw id getprocessidfromname exe handle hprocess o...

如何檢視顯示卡ID,如何檢視顯示卡id

因為現在intel的1156系列的cpu,整合顯示卡都是整合在cpu上的,也就是把北橋和集顯做在一塊晶片上,再和cpu晶片做在一塊基板上。所以1156的主機板,是沒有北橋的,所謂的整合顯示卡,需要cpu的支援。p55的主機板沒有顯示藉口,必須上獨顯。h55的主機板可以支援cpu內部的集顯輸出。當然1...

如何檢視tomcat的版本資訊,如何檢視Apache tomcat的版本號

a.進入tomcat安裝目錄中的bin目錄。這個檔案目錄中有catalina.bat,以及version.bat檔案。b.在檔案目錄位址列中輸入cmd命令。c.在命令命令提示符中輸入 catalina version 或者 version 便可以查到當前的版本號。將tomcat install bi...