日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Memcg OOM優(yōu)先級(jí)策略功能

Alibaba Cloud Linux 2(內(nèi)核版本4.19.91-18.al7開始)和Alibaba Cloud Linux 3(內(nèi)核版本5.10.60-9.al8開始)新增內(nèi)存子系統(tǒng)(memcg)內(nèi)存溢出OOM(Out Of Memory)優(yōu)先級(jí)策略功能。本文主要介紹實(shí)現(xiàn)memcg OOM優(yōu)先級(jí)策略功能的接口,以及接口的示例說明。

背景信息

在現(xiàn)有內(nèi)核系統(tǒng)中,內(nèi)存緊張情況下內(nèi)核會(huì)遍歷cgroup,選擇耗用內(nèi)存較多的cgroup進(jìn)行內(nèi)存回收,甚至在回收失敗的情況下直接OOM,并停止當(dāng)前cgroup下的所有任務(wù)。這對(duì)于當(dāng)前cgroup包含的核心業(yè)務(wù)來說,會(huì)造成很大的影響。為此我們希望這類包含核心業(yè)務(wù)的cgroup占有的內(nèi)存不被回收,或者cgroup下的任務(wù)在OOM中可以存活下來,以便讓內(nèi)核去選擇其他的cgroup進(jìn)行內(nèi)存回收或者OOM。

為了解決這個(gè)問題,Alibaba Cloud Linux增加了memcg OOM優(yōu)先級(jí)配置功能。該功能在進(jìn)行OOM操作時(shí),會(huì)首先判定cgroup的優(yōu)先級(jí),選擇低優(yōu)先級(jí)的cgroup進(jìn)行OOM操作。

memcg OOM優(yōu)先級(jí)接口功能說明

接口

說明

memory.use_priority_oom

該接口用于設(shè)置是否啟用memcg OOM優(yōu)先級(jí)策略功能,取值為0或者1。該接口不會(huì)繼承,默認(rèn)值為0。

  • 取值為0時(shí),表示禁用memcg OOM優(yōu)先級(jí)策略功能。

  • 取值為1時(shí),表示開啟memcgOOM優(yōu)先級(jí)策略功能。

memory.priority

該接口提供13個(gè)級(jí)別的memcg優(yōu)先級(jí)以支持不同重要程度的業(yè)務(wù)。取值范圍為0~12,數(shù)值越大表示優(yōu)先級(jí)越高。該接口不會(huì)繼承,默認(rèn)值為0。

  • 實(shí)現(xiàn)一定程度的內(nèi)存QoS,此處需要說明的優(yōu)先級(jí)值非全局變量,只能在同父cgroup下的兄弟節(jié)點(diǎn)進(jìn)行比較。

  • 對(duì)于優(yōu)先級(jí)相等的兄弟節(jié)點(diǎn)來說,會(huì)按照組的內(nèi)存使用量來排序選擇內(nèi)存使用最大的進(jìn)行OOM操作。

接口配置示例

按如下所示創(chuàng)建6個(gè)cgroup子節(jié)點(diǎn)A、 B、 C、 D、 E、 F,開啟memory.use_priority_oom接口,并通過memory.priority接口設(shè)置OOM的優(yōu)先級(jí)。

                root
                /  \
               A    B
              / \  /  \
             C   D E   F

則各層級(jí)設(shè)置的接口值,對(duì)應(yīng)關(guān)系如下所示:

  • A:10

  • B:8

  • C:5

  • D:6

  • E:7

  • F:8

  1. 遠(yuǎn)程連接ECS實(shí)例。

    具體操作,請(qǐng)參見通過密碼或密鑰認(rèn)證登錄Linux實(shí)例。

  2. 運(yùn)行以下命令創(chuàng)建兩個(gè)cgroup節(jié)點(diǎn) A、B,并開啟memcg OOM優(yōu)先級(jí)策略功能。

    mkdir /sys/fs/cgroup/memory/A
    cd /sys/fs/cgroup/memory/A
    echo 1 >memory.use_priority_oom
    mkdir /sys/fs/cgroup/memory/B
    cd /sys/fs/cgroup/memory/B
    echo 1 >memory.use_priority_oom
  3. 運(yùn)行以下命令分別設(shè)置A、B節(jié)點(diǎn)的memcg OOM優(yōu)先級(jí)值為10、8。

    cd /sys/fs/cgroup/memory/A
    echo 10 > memory.priority
    cd /sys/fs/cgroup/memory/B
    echo 8 > memory.priority
  4. 運(yùn)行以下命令分別在A節(jié)點(diǎn)下創(chuàng)建C、D子節(jié)點(diǎn),在B節(jié)點(diǎn)下創(chuàng)建E、F子節(jié)點(diǎn), 并開啟memcg OOM優(yōu)先級(jí)策略功能。

    mkdir /sys/fs/cgroup/memory/A/C
    cd /sys/fs/cgroup/memory/A/C
    echo 1 >memory.use_priority_oom
    mkdir /sys/fs/cgroup/memory/A/D
    cd /sys/fs/cgroup/memory/A/D
    echo 1 >memory.use_priority_oom
    mkdir /sys/fs/cgroup/memory/B/E
    cd /sys/fs/cgroup/memory/B/E
    echo 1 >memory.use_priority_oom
    mkdir /sys/fs/cgroup/memory/B/F
    cd /sys/fs/cgroup/memory/B/F
    echo 1 >memory.use_priority_oom
  5. 運(yùn)行以下命令分別設(shè)置C、D、E、F子節(jié)點(diǎn)的memcg OOM優(yōu)先級(jí)值為5、6、7、8。

    cd /sys/fs/cgroup/memory/A/C
    echo 5 > memory.priority
    cd /sys/fs/cgroup/memory/A/D
    echo 6 > memory.priority
    cd /sys/fs/cgroup/memory/B/E
    echo 7 > memory.priority
    cd /sys/fs/cgroup/memory/B/F
    echo 8 > memory.priority

當(dāng)在root中進(jìn)行OOM操作時(shí),它首先迭代查找它的兩個(gè)子節(jié)點(diǎn)A和B,由于B的優(yōu)先級(jí)值低于A,所以會(huì)選擇B節(jié)點(diǎn)作為下一個(gè)迭代cgroup繼續(xù)進(jìn)行迭代,最終會(huì)在子節(jié)點(diǎn)E上進(jìn)行OOM操作,因?yàn)樗膬?yōu)先級(jí)比其他的兄弟節(jié)點(diǎn)低。