全部产品
Search
文档中心

Alibaba Cloud Linux:Meningkatkan Visibilitas Sumber Daya Kontainer

更新时间:Jun 28, 2025

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:

  • 0: menonaktifkan fitur visualisasi sumber daya kontainer.

  • 1: mengaktifkan fitur visualisasi sumber daya kontainer.

Nilai default: 0.

/proc/sys/kernel/rich_container_source

Sumber data antarmuka cgroup. Nilai yang valid:

  • 0: cgroup tempat pointer saat ini berada.

  • 1: cgroup tempat child reaper (Proses 1 dari namespace PID saat ini) berada.

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:

  • 0: nilai Limit di Kubernetes. Nilainya sama dengan rasio nilai quota terhadap nilai period (quota/period) di cgroup CPU. Jika nilai quota adalah -1, sumber data CPU di antarmuka cpuset.cpus digunakan.

  • 1: sumber data CPU di antarmuka cpuset.cpus.

  • 2: bilangan bulat yang diperoleh dengan membulatkan hasil pembagian nilai cpu.shares dengan nilai /proc/sys/kernel/rich_container_cpuinfo_sharesbase. Sebagai contoh, jika hasil pembagian nilai cpu.shares dengan nilai /proc/sys/kernel/rich_container_cpuinfo_sharesbase adalah 1.1, nilai akhirnya adalah 2. Nilai akhir tidak boleh melebihi jumlah CPU yang tersedia.

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.free

  • 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.free

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.