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 manaWMARK_MINmerepresentasikan nilai dariglobal wmark_min. Contoh:memory.wmark_min_adj=-25, memcg WMARK_MIN adalah "WMARK_MIN + (WMARK_MIN - 0) * (-25%)"CatatanNilai 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_MINdanWMARK_LOWmerepresentasikan nilai dariglobal wmark_mindanglobal wmark_low. Contoh:memory.wmark_min_adj=50, memcg WMARK_MIN adalah "WMARK_MIN + (WMARK_LOW - WMARK_MIN) * 50%"CatatanNilai 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.CatatanBerkas 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 FTabel 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 |
Nilai yang ditampilkan dalam output perintah
cat /sys/fs/cgroup/memory/<Memcg path>/memory.wmark_min_adjadalah 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_minmenjadi 2 GB atau lebih. Anda dapat menentukan watermark minimum global menggunakan parameter/proc/sys/vm/min_free_kbytes.
Contoh konfigurasi
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
Buat file uji.
mkdir /sys/fs/cgroup/memory/test-lcAtur 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
Buat file uji.
mkdir /sys/fs/cgroup/memory/test-beAtur persentase penyesuaian terhadap watermark minimum global menjadi 25.
echo 25 > /sys/fs/cgroup/memory/test-be/memory.wmark_min_adj