Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud Linux:Memcg OOM öncelik ilkesi

Son Güncelleme:Oct 08, 2026

Alibaba Cloud Linux 2, 4.19.91-18.al7 çekirdek sürümünden ve Alibaba Cloud Linux 3, 5.10.60-9.al8 çekirdek sürümünden itibaren bellek alt sistemi (memcg) bellek yetersizliği (OOM) öncelik ilkesi özelliğini destekler. Bu konu, memcg OOM öncelik ilkesi özelliğinin arayüzlerini açıklar ve bir yapılandırma örneği sunar.

Arka plan bilgileri

Mevcut çekirdek sistemlerinde bellek baskısı yüksek olduğunda çekirdek, en çok bellek tüketen cgroup'lardan bellek geri kazanmak için cgroup'ları tarar. Geri kazanım başarısız olursa çekirdek bir bellek yetersizliği (OOM) olayını tetikleyebilir ve ilgili cgroup içindeki tüm görevleri sonlandırabilir. Bu durum, cgroup içinde çalışan kritik hizmetleri ciddi şekilde etkileyebilir. Bu nedenle, kritik hizmetler içeren cgroup'ların belleğinin geri kazanılmasını engellemek veya bu cgroup'lar içindeki görevlerin OOM olaylarından sağ çıkmasını sağlamak büyük önem taşır. Böylece çekirdek, bellek geri kazanımı veya OOM sonlandırması için başka cgroup'ları seçebilir.

Bu sorunu çözmek için Alibaba Cloud Linux, memcg bellek yetersizliği (OOM) öncelik yapılandırma özelliğini içerir. Bir OOM işlemi sırasında bu özellik, cgroup önceliklerini belirler ve düşük öncelikli bir cgroup'u işlem için seçer.

Memcg OOM öncelik arayüzünün işlevselliği

Arayüz

Açıklama

memory.use_priority_oom

Memcg OOM öncelik ilkesi özelliğinin etkinleştirilip etkinleştirilmeyeceğini belirtir. Geçerli değerler 0 ve 1'dir. Bu ayar alt cgroup'lar tarafından devralınmaz. Varsayılan değer 0'dır.

  • 0: Memcg OOM öncelik ilkesi özelliğini devre dışı bırakır.

  • 1: Memcg OOM öncelik ilkesi özelliğini etkinleştirir.

memory.priority

Farklı öneme sahip işleri desteklemek için memcg önceliğini ayarlar. 13 öncelik düzeyi bulunur. Geçerli değerler 0 ile 12 arasındadır. Daha büyük bir değer daha yüksek öncelik anlamına gelir. Bu ayar alt cgroup'lar tarafından devralınmaz. Varsayılan değer 0'dır.

  • Bellek Hizmet Kalitesi (QoS) için belirli bir düzey sağlar. Öncelik değeri genel bir değişken değildir. Yalnızca aynı üst cgroup altındaki kardeş düğümler arasında karşılaştırma yapmak için kullanılır.

  • Aynı önceliğe sahip kardeş düğümler için çekirdek, bunları bellek kullanımına göre sıralar. OOM işlemi, en yüksek bellek kullanımına sahip düğümde gerçekleşir.

Arayüz yapılandırma örneği

Bu örnek, A, B, C, D, E ve F olmak üzere altı cgroup alt düğümünün nasıl oluşturulacağını gösterir. memory.use_priority_oom arayüzünü etkinleştirebilir ve memory.priority arayüzünü kullanarak OOM önceliklerini ayarlayabilirsiniz.

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

Her düzeydeki arayüz değerleri aşağıdaki gibi eşlenir:

  • A: 10

  • B: 8

  • C: 5

  • D: 6

  • E: 7

  • F: 8

  1. ECS örneğine uzaktan bağlanın.

    Daha fazla bilgi için bkz. Workbench kullanarak bir Linux örneğine bağlanma.

  2. A ve B adlı iki cgroup düğümü oluşturmak ve memcg OOM öncelik ilkesi özelliğini etkinleştirmek için aşağıdaki komutları çalıştırın.

    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. A düğümü için memcg OOM önceliğini 10, B düğümü için ise 8 olarak ayarlamak için aşağıdaki komutları çalıştırın.

    cd /sys/fs/cgroup/memory/A
    echo 10 > memory.priority
    cd /sys/fs/cgroup/memory/B
    echo 8 > memory.priority
  4. A düğümü altında C ve D alt düğümlerini, B düğümü altında ise E ve F alt düğümlerini oluşturmak ve memcg OOM öncelik ilkesi özelliğini etkinleştirmek için aşağıdaki komutları çalıştırın.

    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. C, D, E ve F alt düğümlerinin memcg OOM önceliklerini sırasıyla 5, 6, 7 ve 8 olarak ayarlamak için aşağıdaki komutları çalıştırın.

    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

Kök hesap kullanıldığında bir OOM hatasını tetiklemek için sistem A ve B'den başlayarak yinelemeli bir sorgu başlatır. B'nin önceliği A'dan daha düşük olduğu için sistem B altındaki E ve F'yi sorgulamaya devam eder. Sistem, alt cgroup'lar arasında en düşük önceliğe sahip olanın E olduğunu belirler ve E üzerinde bir OOM hatası tetikler.