全部产品
Search
文档中心

Alibaba Cloud Linux:Optimalisasi pengambilan kembali memori untuk fitur penilaian watermark minimum global memcg

更新时间:Jun 28, 2025

Ketika tugas yang sensitif terhadap latensi dan tugas yang mengonsumsi banyak sumber daya ditempatkan bersama di sistem operasi Linux, tugas yang mengonsumsi banyak sumber daya secara instan meminta sejumlah besar memori. Hal ini menyebabkan memori bebas dari sistem operasi mencapai watermark minimum global (global wmark_min), yang mengakibatkan jitter performa pada tugas yang sensitif terhadap latensi. Fitur penilaian watermark minimum global memcg didukung di Alibaba Cloud Linux 2 mulai versi kernel 4.19.91-18.al7 dan Alibaba Cloud Linux 3 mulai versi kernel 5.10.134-12.al8. Anda dapat menentukan berbagai tingkat ambang batas penggunaan memori (watermark) untuk memenuhi kebutuhan memori tugas yang sensitif terhadap latensi dan tugas yang mengonsumsi banyak sumber daya serta mencegah pengambilan kembali memori yang tidak perlu memengaruhi sistem.

Deskripsi antarmuka

Fitur penilaian watermark minimum global memcg diimplementasikan pada antarmuka memory.wmark_min_adj. Nilai dari antarmuka ini menunjukkan persentase penyesuaian terhadap watermark minimum global. Nilai valid: -25 hingga 50.

  • Saat antarmuka dibuat, antarmuka mewarisi nilai 0 dari grup induknya. Oleh karena itu, nilai default adalah 0.

  • Nilai negatif adalah persentase penyesuaian dalam rentang [0, WMARK_MIN], di mana WMARK_MIN merepresentasikan nilai dari global wmark_min. Contoh:

    memory.wmark_min_adj=-25, memcg WMARK_MIN adalah "WMARK_MIN + (WMARK_MIN - 0) * (-25%)"
    Catatan

    Nilai negatif menunjukkan penurunan watermark minimum global. Ini dapat meningkatkan kualitas layanan (QoS) memcg untuk tugas yang sensitif terhadap latensi.

  • Nilai positif adalah persentase penyesuaian dalam rentang [WMARK_MIN, WMARK_LOW], di mana WMARK_MIN dan WMARK_LOW merepresentasikan nilai dari global wmark_min dan global wmark_low. Contoh:

    memory.wmark_min_adj=50, memcg WMARK_MIN adalah "WMARK_MIN + (WMARK_LOW - WMARK_MIN) * 50%"
    Catatan

    Nilai positif menunjukkan peningkatan global wmark_min. Ini dapat menurunkan QoS memcg untuk tugas yang mengonsumsi banyak sumber daya.

  • Saat watermark minimum global yang disesuaikan (global wmark_min) terpicu, throttling dilakukan. Waktu throttling berkaitan linear dengan penggunaan memori yang berlebih. Nilai valid untuk waktu throttling: 1 hingga 1.000. Satuan: mikrodetik.

    Catatan

    Berkas antarmuka tidak disimpan di direktori root memcg.

Perhatian

Memcg multi-level berisi effective memory.wmark_min_adj, yang merupakan nilai efektif akhir dari memory.wmark_min_adj. Nilai-nilai memory.wmark_min_adj di semua level ditelusuri untuk mendapatkan nilai maksimum. Node perantara dengan nilai default 0 dikecualikan. Hirarki berikut memberikan contoh memcg multi-level:

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

Tabel berikut menjelaskan pemetaan antara nilai memory.wmark_min_adj di setiap level dan nilai efektif akhir.

Level

Nilai di setiap level

Nilai efektif akhir

A

-10

-10

B

-25

-10

C

0

0

D

50

50

E

-25

-10

F

50

50

Catatan
  • Nilai yang ditampilkan dalam output perintah cat /sys/fs/cgroup/memory/<Memcg path>/memory.wmark_min_adj adalah nilai efektif akhir. Dalam perintah tersebut, <Memcg path> menunjukkan jalur root dari memcg.

  • Kami menyarankan Anda menggunakan fitur penilaian watermark minimum global bersama dengan watermark minimum global yang tinggi. Sebagai contoh, Anda dapat mengatur global wmark_min menjadi 2 GB atau lebih. Anda dapat menentukan watermark minimum global menggunakan parameter /proc/sys/vm/min_free_kbytes.

Contoh konfigurasi

Peringatan
  • Modifikasi yang tidak tepat pada QoS memcg dapat menyebabkan masalah performa jaringan, seperti kemacetan jaringan, peningkatan latensi penerusan, dan kehilangan paket. Hal ini memengaruhi kualitas dan ketersediaan bisnis Anda. Lakukan dengan hati-hati.

  • Jalankan perintah berikut hanya sebagai pengguna root.

Contoh 1: Konfigurasikan penilaian watermark minimum global untuk memcg tugas yang sensitif terhadap latensi

  1. Buat file uji.

    mkdir /sys/fs/cgroup/memory/test-lc
  2. Atur persentase penyesuaian terhadap watermark minimum global menjadi -25.

    echo -25 > /sys/fs/cgroup/memory/test-lc/memory.wmark_min_adj

Contoh 2: Konfigurasikan penilaian watermark minimum global untuk memcg tugas yang mengonsumsi banyak sumber daya

  1. Buat file uji.

    mkdir /sys/fs/cgroup/memory/test-be
  2. Atur persentase penyesuaian terhadap watermark minimum global menjadi 25.

    echo 25 > /sys/fs/cgroup/memory/test-be/memory.wmark_min_adj