Fitur Kualitas Layanan (QoS) grup kontrol memori (memcg) dirancang untuk mengelola sumber daya memori dan mengoptimalkan penggunaan memori di sistem operasi Linux. Fitur ini dapat digunakan untuk mengunci jumlah memori tertentu guna memenuhi persyaratan layanan atau aplikasi penting, serta menetapkan batas atas penggunaan memori untuk mencegah ketidakstabilan sistem akibat tugas-tugas yang memakan banyak memori. Di versi komunitas kernel Linux, fitur memcg QoS hanya didukung oleh antarmuka cgroup v2. Pada Alibaba Cloud Linux 2 mulai dari versi kernel 4.19.91-18.al7 dan Alibaba Cloud Linux 3, fitur memcg QoS juga didukung oleh antarmuka cgroup v1.
Informasi latar belakang
Secara default, fitur memcg QoS diaktifkan pada antarmuka cgroup v1 di kernel Alibaba Cloud Linux. Untuk informasi lebih lanjut tentang fitur memcg QoS, lihat Documentation/admin-guide/cgroup-v2.rst. Dokumen kernel dapat diperoleh dari paket Debuginfo dan paket kode sumber Alibaba Cloud Linux. Untuk detail lebih lanjut, lihat Gunakan Alibaba Cloud Linux 2.
Catatan penggunaan
Saat menggunakan fitur memcg QoS dari antarmuka cgroup v1, disarankan untuk menempatkan tugas Anda di node daun memcg. Contoh jalur tugas: /sys/fs/cgroup/memory/<node perantara>/<node daun>/tasks.
Deskripsi antarmuka
Tabel berikut menjelaskan antarmuka yang mengimplementasikan fitur memcg QoS dari antarmuka cgroup v1 di kernel Alibaba Cloud Linux.
Antarmuka | Deskripsi |
memory.min | Mengunci secara absolut sejumlah memori tertentu. Memori yang dikunci oleh antarmuka ini tidak dapat direklaim meskipun sistem tidak memiliki memori lain untuk direklaim. Ini menjamin bahwa proses dalam cgroup dapat memperoleh jumlah minimum memori yang ditentukan dan mencegah penurunan kinerja layanan. Antarmuka ini cocok untuk layanan yang memerlukan jaminan jumlah minimum memori tetap untuk memenuhi persyaratan kinerja. Anda dapat melakukan operasi baca dan tulis berikut pada antarmuka:
|
memory.low | Mengunci secara relatif sejumlah memori tertentu. Memori yang dikunci oleh antarmuka ini dapat sebagian direklaim jika sistem tidak memiliki memori lain untuk direklaim. Dengan cara ini, sistem dapat menyesuaikan alokasi memori secara lebih masuk akal saat sumber daya tidak mencukupi. Antarmuka ini cocok untuk layanan yang memerlukan perlindungan dasar tetapi tidak memerlukan perlindungan mutlak, seperti aplikasi bisnis non-kritis dan tugas latar belakang. Anda dapat melakukan operasi baca dan tulis berikut pada antarmuka:
|
memory.high | Memaksakan batasan penggunaan memori. Anda dapat melakukan operasi baca dan tulis berikut pada antarmuka:
|
Contoh
Di Alibaba Cloud Linux 3, alokasikan memori atau tentukan batas atas penggunaan memori di direktori mount memcg, seperti /sys/fs/cgroup/memory/.
Jalankan perintah berikut hanya sebagai pengguna root.
Contoh perintah:
Jalankan perintah berikut untuk membuat direktori test_memcg:
mkdir /sys/fs/cgroup/memory/test_memcgKunci secara absolut sejumlah memori tertentu.
Jalankan perintah berikut untuk mengunci secara absolut 200 MB memori:
echo 209715200 > /sys/fs/cgroup/memory/test_memcg/memory.minJalankan perintah berikut untuk memeriksa apakah 200 MB memori telah dikunci secara absolut:
cd /sys/fs/cgroup/memory/test_memcg cat memory.min
Kunci secara relatif sejumlah memori tertentu.
Jalankan perintah berikut untuk mengunci secara relatif 200 MB memori:
echo 209715200 > /sys/fs/cgroup/memory/test_memcg/memory.lowJalankan perintah berikut untuk memeriksa apakah 200 MB memori telah dikunci secara relatif:
cd /sys/fs/cgroup/memory/test_memcg cat memory.low
Tentukan batas atas penggunaan memori.
Jalankan perintah berikut untuk menetapkan batas atas penggunaan memori menjadi 1 GB:
echo 1073741824 > /sys/fs/cgroup/memory/test_memcg/memory.highJalankan perintah berikut untuk memeriksa apakah batas atas penggunaan memori telah ditetapkan menjadi 1 GB:
cd /sys/fs/cgroup/memory/test_memcg cat memory.high