Ketika penggunaan memori yang dialokasikan oleh sistem mencapai batas atas yang ditentukan untuk sebuah memcg, sistem memicu proses pengambilan kembali memori langsung pada tingkat memcg. Proses ini bersifat sinkron dan terjadi dalam konteks alokasi memori, sehingga memengaruhi performa proses saat ini. Untuk mengatasi masalah ini, Alibaba Cloud Linux menyediakan fitur pengambilan kembali asinkron backend untuk memcg. Fitur ini didukung oleh Alibaba Cloud Linux 2 dengan versi kernel 4.19.81-17.al7 dan yang lebih baru, serta Alibaba Cloud Linux 3 dengan versi kernel 5.10.134-12.al8 dan yang lebih baru. Fitur ini membantu Anda mengelola penggunaan memori cgroup secara dinamis dan efisien, serta mencegah kehabisan sumber daya.
Alokasi memori di memcg yang ada dapat memicu secara rekursif pengambilan kembali asinkron backend dari cgroup induk.
Ketika pengambilan kembali asinkron backend dipicu, proses dimulai dari memcg tempat fitur tersebut dipicu dan dilakukan secara berkelanjutan dari atas ke bawah dalam hierarki cgroup.
Ketika antarmuka
memory.highditentukanke nilai yang lebih kecil dari nilai antarmukamemory.limit_in_bytes, nilai-nilai antarmukamemory.wmark_highdanmemory.wmark_lowdihitung berdasarkan antarmukamemory.highbukan antarmukamemory.limit_in_bytes.
Deskripsi Antarmuka
Antarmuka | Deskripsi |
| Menentukan apakah akan mengaktifkan fitur pengambilan kembali asinkron backend memcg dan watermark memori memcg yang memicu pengambilan kembali memori asinkron. Satuan: persen dari Nilai valid: 0 hingga 100.
|
| Ketika penggunaan memori memcg melebihi nilai antarmuka ini, pengambilan kembali asinkron backend dipicu. Antarmuka hanya-baca.
|
| Ketika penggunaan memori memcg kurang dari nilai antarmuka ini, pengambilan kembali asinkron backend dihentikan. Antarmuka hanya-baca.
|
| Mengontrol perbedaan antara nilai Satuan: 0,01 persen dari batas atas memori memcg ( Nilai valid: 1 hingga 1000.
|
Contoh Konfigurasi
Buat file tes.
sudo mkdir /sys/fs/cgroup/memory/test/Tentukan nilai antarmuka
memory.limit_in_bytes.Dalam contoh ini, nilai diatur menjadi 1 GB.
sudo sh -c 'echo 1G > /sys/fs/cgroup/memory/test/memory.limit_in_bytes'Tentukan nilai antarmuka
memory.wmark_ratio.Dalam contoh ini, nilai diatur menjadi 95%. Watermark memori di
memcguntuk fitur pengambilan kembali asinkron adalah 95% dari batas atas memori memcg (memcg limit).sudo sh -c 'echo 95 > /sys/fs/cgroup/memory/test/memory.wmark_ratio'Lihat nilai-nilai antarmuka di memcg.
Lihat nilai antarmuka
memory.wmark_scale_factor.cat /sys/fs/cgroup/memory/test/memory.wmark_scale_factorNilai default adalah 0,50% dari batas memori memcg (
memcg limit). Contoh nilai yang dikembalikan: 50.Lihat nilai antarmuka
memory.wmark_high.cat /sys/fs/cgroup/memory/test/memory.wmark_highLihat nilai antarmuka
memory.wmark_low.cat /sys/fs/cgroup/memory/test/memory.wmark_low