日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

linux内核oom,linux OOM killer分析

發(fā)布時(shí)間:2023/11/27 生活经验 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux内核oom,linux OOM killer分析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

基本概念

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

oom killer機(jī)制分析

oom killer是計(jì)算出選擇哪個(gè)進(jìn)程kill呢?我們先來看一下kernel提供給用戶態(tài)的/proc下的一些參數(shù):

/proc/[pid]/oom_adj ,該pid進(jìn)程被oom killer殺掉的權(quán)重,介于 [-17,15]之間,越高的權(quán)重,意味著更可能被oom killer選中,-17表示禁止被kill掉。

/proc/[pid]/oom_score,當(dāng)前該pid進(jìn)程的被kill的分?jǐn)?shù),越高的分?jǐn)?shù)意味著越可能被kill,這個(gè)數(shù)值是根據(jù)oom_adj運(yùn)算后的結(jié)果,是oom_killer的主要參考。

sysctl 下有2個(gè)可配置選項(xiàng):

vm.panic_on_oom = 0 #內(nèi)存不夠時(shí)內(nèi)核是否直接panic

vm.oom_kill_allocating_task = 1 #oom-killer是否選擇當(dāng)前正在申請內(nèi)存的進(jìn)程進(jìn)行kill

觸發(fā)oom killer時(shí)/var/log/message打印了進(jìn)程的score:

Apr 18 16:56:18 v125000100.bja kernel: : [22254386.758297] [ pid ] uid tgid total_vm rss cpu oom_adj oom_score_adj name

Apr 18 16:56:18 v125000100.bja kernel: : [22254386.758311] [ 399] 0 399 2709 133 2 -17 -1000 udevd

Apr 18 16:56:18 v125000100.bja kernel: : [22254386.758314] [ 810] 0 810 2847 43 0 0 0 svscanboot

Apr 18 16:56:18 v125000100.bja kernel: : [22254386.758317] [ 824] 0 824 1039 21 0 0 0 svscan

Apr 18 16:56:18 v125000100.bja kernel: : [22254386.758320] [ 825] 0 825 993 17 1 0 0 readproctitle

Apr 18 16:56:18 v125000100.bja kernel: : [22254386.758322] [ 826] 0 826 996 16 0 0 0 supervise

Apr 18 16:56:18 v125000100.bja kernel: : [22254386.758325] [ 827] 0 827 996 17 0 0 0 supervise

Apr 18 16:56:18 v125000100.bja kernel: : [22254386.758327] [ 828] 0 828 996 16 0 0 0 supervise

Apr 18 16:56:18 v125000100.bja kernel: : [22254386.758330] [ 829] 0 829 996 17 2 0 0 supervise

Apr 18 16:56:18 v125000100.bja kernel: : [22254386.758333] [ 830] 0 830 6471 152 0 0 0 run

Apr 18 16:56:18 v125000100.bja kernel: : [22254386.758335] [ 831] 99 831 1032 21 0 0 0 multilog

所以,如果想修改被oom killer選中的概率,禁止或者給oom_adj最小或偏小的值,也可以通過sysctl調(diào)節(jié)oom killer行為

如何查看OOM日志

grep "Out of memory" /var/log/messages

總結(jié)

以上是生活随笔為你收集整理的linux内核oom,linux OOM killer分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。