Untuk meningkatkan visibilitas sumber daya kontainer, antarmuka kernel untuk fitur visualisasi sumber daya kontainer tersedia di Alibaba Cloud Linux 2 mulai versi kernel 4.19.91-22.2.al7 dan Alibaba Cloud Linux 3 mulai versi kernel 5.10.46-7.al8. Topik ini menjelaskan antarmuka tersebut serta memberikan contoh penggunaannya.
Informasi Latar Belakang
Secara default, fitur visualisasi sumber daya kontainer di Alibaba Cloud Linux dinonaktifkan. Jika Anda mengaktifkan fitur ini dan menjalankan perintah seperti top dan free di dalam kontainer untuk membaca data dari antarmuka berikut, informasi sumber daya kontainer akan ditampilkan, bukan informasi sumber daya dari instance Elastic Compute Service (ECS) tempat kontainer berada:
/proc/cpuinfo
/proc/meminfo
/sys/devices/system/cpu/online
Antarmuka
Antarmuka | Deskripsi |
/proc/sys/kernel/rich_container_enable | Menentukan apakah fitur visualisasi sumber daya kontainer diaktifkan. Nilai yang valid:
Nilai default: 0. |
/proc/sys/kernel/rich_container_source | Sumber data antarmuka cgroup. Nilai yang valid:
Nilai default: 0. |
/proc/sys/kernel/rich_container_cpuinfo_source | Jumlah CPU yang ditampilkan di antarmuka /proc/cpuinfo dan /sys/devices/system/cpu/online. Nilai yang valid:
Nilai default: 0. |
/proc/sys/kernel/rich_container_cpuinfo_sharesbase | Ketika antarmuka /proc/sys/kernel/rich_container_cpuinfo_source diatur ke 2, gunakan antarmuka ini sebagai bagian dari rumus untuk mendapatkan nilai akhir. Nilainya harus berupa bilangan bulat yang lebih besar dari atau sama dengan 2. Nilai default: 1024. |
Contoh
Dalam contoh-contoh berikut, Docker diterapkan pada instance Linux, dan sebuah kontainer dengan memori 1 GB dibuat pada instance tersebut.
Jika fitur visualisasi sumber daya kontainer dinonaktifkan, nilai antarmuka /proc/sys/kernel/rich_container_enable adalah 0. Ketika Anda menjalankan perintah free -m di dalam kontainer, informasi sumber daya dari instance Linux tempat kontainer berada akan ditampilkan, seperti yang ditunjukkan pada gambar berikut.

Jika Anda menjalankan perintah echo 1 > /proc/sys/kernel/rich_container_enable pada instance Linux untuk mengaktifkan fitur visualisasi sumber daya kontainer dan kemudian menjalankan perintah free -m di dalam kontainer, informasi sumber daya kontainer akan ditampilkan, seperti yang ditunjukkan pada gambar berikut.

Skenario Khusus
Dalam sebagian besar kasus, setelah mengaktifkan fitur visualisasi sumber daya kontainer, nilai default antarmuka dapat memenuhi kebutuhan bisnis Anda. Namun, konfigurasi antarmuka harus diperhatikan dalam skenario berikut:
Untuk pod di mana namespace ID proses (PID) tidak dibagikan, setiap kontainer memiliki namespace PID yang independen. Jika Anda menjalankan perintah systemd untuk memulai kontainer dengan hak istimewa dan proses kontainer adalah Proses 1, tugas pengumpulan data pemantauan dijalankan di cgroup anak, bukan di cgroup root kontainer.
Sebagai contoh, ketika masuk ke kontainer menggunakan pasangan kunci SSH dan menjalankan perintah cat /proc/cpuinfo, salah satu skenario berikut mungkin terjadi:
Jika antarmuka /proc/sys/kernel/rich_container_source diatur ke 0 saat menjalankan perintah, pointer saat ini berada di cgroup anak yang dibuat oleh sshd.service di dalam kontainer. Dalam hal ini, data kesalahan dikembalikan.
Jika Anda menjalankan perintah echo 1 > /proc/sys/kernel/rich_container_source, cgroup tempat child reaper berada digunakan sebagai sumber data. Dalam hal ini, data valid dikembalikan.