OOM診斷功能使用說明
通過OOM(Out Of Memory)內(nèi)存診斷功能,對操作系統(tǒng)發(fā)生OOM的原因進行分析和界定。本文介紹了OOM診斷功能的使用說明。
使用限制
地域限制
本功能目前僅支持中國內(nèi)地與中國香港。
操作系統(tǒng)限制
架構(gòu)
操作系統(tǒng)
x86架構(gòu)
Alibaba Cloud Linux 2/3
CentOS 7.6及以上版本
Anolis 8.4以上版本
ARM架構(gòu)
Alibaba Cloud Linux 3
使用場景
場景 | 說明 |
系統(tǒng)全局內(nèi)存不足 | 整個主機的內(nèi)存使用過量,導(dǎo)致系統(tǒng)內(nèi)存不足,從而觸發(fā)了OOM。 |
cgroup內(nèi)存使用超限 | 在指定的cgroup下,進程的內(nèi)存使用超過了設(shè)定限制,導(dǎo)致該cgroup整體的內(nèi)存使用達到上限,從而觸發(fā)了OOM。 |
父級cgroup內(nèi)存使用超限 | 父cgroup下的進程內(nèi)存使用超標(biāo),導(dǎo)致父cgroup整體內(nèi)存使用達到限制,從而觸發(fā)了OOM。在終止進程時,系統(tǒng)選擇了子cgroup下的進程執(zhí)行終止操作。 |
內(nèi)存節(jié)點的內(nèi)存不足 | 在NUMA存儲模式下,操作系統(tǒng)可能具有多個內(nèi)存節(jié)點(可通過執(zhí)行 |
共享內(nèi)存過度使用導(dǎo)致cgroup內(nèi)存使用超限 | 在cgroup內(nèi)存使用超限的情況下,進一步發(fā)現(xiàn)cgroup下的共享內(nèi)存使用已超過總的cgroup用戶態(tài)內(nèi)存的30%。因此,可以認為造成OOM的主要原因是共享內(nèi)存的過量使用,需要進一步分析共享內(nèi)存的主要占用者。 |
前提條件
如果您使用RAM用戶,請確保阿里云賬號(主賬號)已將系統(tǒng)策略
AliyunECSReadOnlyAccess
和AliyunSysomFullAccess
授予RAM用戶。具體操作,請參見為RAM用戶授權(quán)。已開通控制臺權(quán)限。
首次登錄操作系統(tǒng)控制臺時,單擊開通服務(wù)以開通控制臺服務(wù)。
操作步驟
為目標(biāo)ECS實例安裝SysOM。具體操作,請參見安裝組件。
在左側(cè)導(dǎo)航欄,單擊系統(tǒng)診斷。
在頁面左側(cè)頂部,選擇目標(biāo)實例所在的地域。
在診斷類型列表中,選擇內(nèi)存診斷,在診斷項列表中,選擇OOM診斷,配置相關(guān)參數(shù),單擊執(zhí)行診斷。
相關(guān)參數(shù)如下:
參數(shù)名
參數(shù)說明
是否必填
實例ID
目標(biāo)ECS實例ID。
是
OOM發(fā)生的時間
選擇時間:將會對距離目標(biāo)時間最近的一次OOM進行分析。
不指定時間:對當(dāng)前系統(tǒng)最后一次發(fā)生的OOM進行分析。
否
在診斷記錄區(qū)域,單擊查看報告。
診斷報告
基礎(chǔ)信息
基礎(chǔ)信息部分包含單次診斷的基本信息,包括診斷實例ID(資源ID)、診斷項、診斷報告ID及診斷發(fā)起時間。
診斷結(jié)論
該部分展示本次診斷的結(jié)論,詳細的描述導(dǎo)致本次OOM發(fā)生的主要原因。
診斷建議
根據(jù)診斷結(jié)果,提出相應(yīng)的處理建議,以減少或消除此類OOM的發(fā)生。
診斷詳情
OOM診斷詳情
此處會給出觸發(fā)OOM的任務(wù)、任務(wù)所屬cgroup、觸發(fā)OOM的cgroup以及OOM類型。
(Host OOM)內(nèi)存占用分析
當(dāng)OOM的是由主機內(nèi)存不足導(dǎo)致時,診斷報告中會給出OOM發(fā)生時主機的內(nèi)存占用情況,包括內(nèi)存的系統(tǒng)、應(yīng)用、空閑內(nèi)存占比、系統(tǒng)內(nèi)存使用分布以及應(yīng)用內(nèi)存使用分布。
(Cgroup OOM)共享內(nèi)存文件占用
當(dāng)OOM的原因是Cgroup內(nèi)共享內(nèi)存使用過多時,診斷報告中會給出共享內(nèi)存文件占用排序表格
OOM發(fā)生時刻任務(wù)列表
此部分將會列舉出 OOM 發(fā)生時刻,系統(tǒng)的任務(wù)列表,包含任務(wù)名稱、進程ID和用戶態(tài)內(nèi)存用量(RSS)。
(不可回收Slab)不可回收Slab列表
當(dāng)OOM的原因是不可回收的Slab內(nèi)存使用過多時,并且操作系統(tǒng)的內(nèi)核版本在5.10以上(比如 Alinux3)診斷報告中將會列舉出不可回收的Slab占用列表。