全部产品
Search
文档中心

Alibaba Cloud Linux:Kebijakan prioritas Memcg OOM

更新时间:Jun 28, 2025

Versi kernel 4.19.91-18.al7 untuk Alibaba Cloud Linux 2 dan versi kernel 5.10.60-9.al8 untuk Alibaba Cloud Linux 3 mendukung fitur kebijakan prioritas memcg out of memory (OOM). Topik ini menjelaskan antarmuka yang disediakan untuk fitur kebijakan prioritas memcg OOM serta cara menggunakannya.

Informasi latar belakang

Pada sistem kernel yang ada, jika memori tidak mencukupi, kernel melintasi cgroups dan mengambil kembali memori dari cgroups yang menggunakan banyak memori. Jika memori tidak dapat diambil kembali dari sebuah cgroup, kesalahan OOM dilaporkan dan semua tugas dalam cgroup dihentikan. Hal ini berdampak pada bisnis penting dalam cgroup. Untuk mencegah memori yang digunakan oleh cgroups dengan bisnis penting diambil kembali, serta memastikan bahwa tugas-tugas dalam cgroups tersebut tetap berjalan sehingga kernel dapat mengambil kembali memori dari cgroups lain atau memicu kesalahan OOM, Alibaba Cloud Linux menyediakan fitur kebijakan prioritas memcg OOM.

Saat fitur ini diaktifkan, sistem kernel menentukan prioritas cgroups dan memicu kesalahan OOM pada cgroups dengan prioritas rendah.

Antarmuka

AntarmukaDeskripsi
memory.use_priority_oomAntarmuka ini digunakan untuk menentukan apakah akan mengaktifkan fitur kebijakan prioritas memcg OOM. Nilai valid: 0 dan 1. Prioritas cgroup induk tidak diwariskan oleh cgroup anaknya. Nilai default: 0.
  • Nilai 0 menunjukkan bahwa fitur kebijakan prioritas memcg OOM dinonaktifkan.
  • Nilai 1 menunjukkan bahwa fitur kebijakan prioritas memcg OOM diaktifkan.
memory.priorityAntarmuka ini menyediakan 13 prioritas memcg OOM untuk mendukung bisnis dengan tingkat kepentingan yang berbeda. Nilai valid: 0 hingga 12. Semakin besar nilai, semakin tinggi prioritasnya. Prioritas cgroup induk tidak diwariskan oleh cgroup anaknya. Nilai default: 0.
  • Antarmuka ini digunakan untuk mengimplementasikan kualitas layanan (QoS) memcg. Nilai prioritas bukan variabel global dan hanya dapat dibandingkan antara cgroup anak di bawah cgroup induk yang sama.
  • Sistem kernel mengurutkan cgroup anak dengan prioritas yang sama berdasarkan penggunaan memori mereka dan memicu kesalahan OOM pada cgroup anak yang menggunakan jumlah memori terbesar.

Contoh konfigurasi antarmuka

Untuk sebuah instance Elastic Compute Service (ECS), buat enam cgroup anak bernama A, B, C, D, E, dan F seperti yang ditunjukkan dalam hierarki berikut. Aktifkan antarmuka memory.use_priority_oom dan atur prioritas OOM dengan menentukan antarmuka memory.priority
                root
                /  \
               A    B
              / \  /  \
             C   D E   F
. Berikut adalah deskripsi nilai antarmuka yang diatur untuk cgroup anak:
  • A: 10
  • B: 8
  • C: 5
  • D: 6
  • E: 7
  • F: 8
  1. Hubungkan ke instance ECS.

    Untuk informasi lebih lanjut, lihat Gunakan Workbench untuk terhubung ke instance Linux melalui SSH.

  2. 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. cd /sys/fs/cgroup/memory/A
    echo 10 > memory.priority
    cd /sys/fs/cgroup/memory/B
    echo 8 > memory.priority
  4. 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. 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

Untuk memicu kesalahan OOM saat akun root digunakan, sistem memulai permintaan iteratif dari A dan B. Prioritas B lebih rendah daripada A, sehingga sistem terus memeriksa E dan F di bawah B. Sistem menentukan bahwa E memiliki prioritas terendah di antara cgroup anak, dan memicu kesalahan OOM pada E.