全部产品
Search
文档中心

Container Service for Kubernetes:Gunakan SysOM untuk mengidentifikasi masalah memori kontainer

更新时间:Jul 06, 2025

Menganalisis kegagalan layanan kontainer menjadi sulit karena lapisan mesin kontainer tidak transparan bagi pengguna. Untuk mengatasi hal ini, Container Service for Kubernetes (ACK) memperkenalkan SysOM. SysOM meningkatkan observabilitas masalah memori kontainer dengan menyediakan data pemantauan di tingkat kernel sistem operasi. Ini memungkinkan Anda mendiagnosis masalah pada lapisan mesin kontainer secara lebih transparan dan membantu migrasi aplikasi berbasis kontainer secara efisien. Topik ini menjelaskan cara menggunakan SysOM untuk mengidentifikasi masalah memori kontainer.

Prasyarat

Penagihan ack-sysom-monitor

Setelah komponen ack-sysom-monitor diaktifkan, metrik pemantauan secara otomatis dikirim ke Managed Service for Prometheus sebagai metrik kustom, yang dikenai biaya.

Sebelum mengaktifkan fitur ini, kami sarankan Anda membaca Ikhtisar Penagihan untuk memahami aturan penagihan metrik kustom. Biaya dapat bervariasi tergantung pada ukuran kluster dan jumlah aplikasi. Anda dapat mengikuti langkah-langkah dalam Lihat Penggunaan Sumber Daya untuk memantau dan mengelola konsumsi sumber daya.

Skenario

Kontainerisasi telah menjadi praktik terbaik dalam arsitektur TI perusahaan karena keunggulan biaya rendah, efisiensi tinggi, fleksibilitas, dan skalabilitasnya.

Namun, kontainerisasi mengorbankan transparansi lapisan mesin kontainer, yang dapat menyebabkan penggunaan memori berlebihan atau bahkan melewati batas, sehingga memicu masalah Out of Memory (OOM).

Tim Container Service for Kubernetes (ACK), berkolaborasi dengan tim Alibaba Cloud GuestOS, telah mengimplementasikan manajemen memori presisi melalui kemampuan pemantauan kontainer di lapisan kernel sistem operasi guna mencegah masalah OOM.

Memori Kontainer

Memori kontainer terdiri dari memori aplikasi, memori kernel, dan memori bebas.

Kategori Memori

Subkategori Memori

Deskripsi

Memori Aplikasi

Memori aplikasi terdiri dari jenis-jenis berikut:

  • anon: Memori anonim yang tidak terkait dengan file. Sebagai contoh, memori anonim digunakan untuk heap, stack, dan segmen data dalam proses. Heap memory dialokasikan oleh brk dan mmap.

  • filecache: Memori yang digunakan untuk menyimpan data file yang dibaca dari disk dan ditulis ke disk. Cache yang sering digunakan disebut active file cache dan biasanya tidak direklaim oleh sistem.

  • buffer: Memori yang digunakan untuk menyimpan metadata perangkat blok dan sistem file.

  • enormoustlb: Memori yang digunakan untuk halaman besar dalam sistem file.

Memori yang ditempati oleh aplikasi yang sedang berjalan.

Memori Kernel

Memori kernel terdiri dari jenis-jenis berikut:

  • Slab: Alokator memori caching yang digunakan untuk mengelola alokasi memori untuk objek kernel.

  • Vmalloc: Mekanisme kernel yang digunakan untuk mengalokasikan wilayah memori besar dalam ruang memori virtual.

  • allocpage: Mekanisme yang digunakan untuk mengalokasikan memori lokal.

  • Lainnya: KernelStack, PageTables, dan Reserve.

Memori yang digunakan oleh kernel OS.

Memori Bebas

Tidak ada.

Memori yang tidak digunakan.

Cara Kerja

Kubernetes menggunakan working sets memori untuk memantau dan mengelola penggunaan memori kontainer. Ketika memori yang digunakan oleh kontainer melebihi batas atas yang ditentukan atau node menghadapi tekanan memori, Kubernetes menentukan apakah akan mengusir atau menghentikan kontainer berdasarkan working set. Dengan memantau working set pod melalui SysOM, Anda dapat memperoleh analisis memori yang lebih komprehensif dan akurat, membantu personel O&M serta pengembang menemukan dan menyelesaikan masalah dengan cepat.

Working set memori adalah memori aktual yang digunakan oleh kontainer dalam rentang waktu tertentu, yaitu memori yang diperlukan untuk operasi saat ini. Rumus perhitungannya adalah: Working set = InactiveAnon + ActiveAnon + ActiveFile. InactiveAnon dan ActiveAnon mewakili total memori anonim aplikasi, sedangkan ActiveFile mewakili ukuran active file cache aplikasi. Dengan memantau dan menganalisis, personel O&M dapat mengelola sumber daya secara lebih efektif untuk memastikan operasi aplikasi yang stabil.

Gunakan Fitur SysOM

Dasbor tingkat kernel OS SysOM memungkinkan Anda melihat metrik sistem seperti memori, jaringan, dan penyimpanan dari pod dan node secara real-time. Untuk informasi lebih lanjut tentang metrik SysOM, lihat Pemantauan Kontainer Tingkat Kernel Berbasis SysOM.

  1. Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.

  2. Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel sebelah kiri, pilih Operations > Prometheus Monitoring.

  3. Di halaman Prometheus Monitoring, pilih SysOM > SysOM - Pods untuk melihat data memori pod pada dasbor.

    Analisis bagaimana mengidentifikasi masalah memori hilang berdasarkan rumus perhitungan.

    Total memori Pod = RSS resident memory + Cache ≈ inactive_anon + active_anon + inactive_file + active_file

    Working set = inactive_anon + active_anon + active_file

    1. Di bagian Pod Memory Monitor, sesuai dengan rumus total memori pod, Anda dapat membagi memori pod menjadi cache dan memori RSS terlebih dahulu. Kemudian, bagi cache menjadi tiga jenis: active_file, inactive_file, dan shmem (shared memory), serta bagi memori RSS menjadi dua jenis: active_anon dan inactive_anon.

      Seperti ditunjukkan pada gambar berikut, inactive_anon memiliki proporsi terbesar.

      image

    2. Di bagian Pod Resource Analysis, gunakan perintah top untuk menemukan pod yang menempati memori InactiveAnon paling banyak di kluster.

      Pod arms-prom menempati memori InactiveAnon paling banyak, seperti ditunjukkan pada gambar berikut.

      image.png

    3. Di bagian Pod Memory Details, Anda dapat melihat detail penggunaan memori pod. Berdasarkan metrik memori pod yang ditampilkan pada dasbor, seperti pod cache, InactiveFile, InactiveAnon, dan Dirty Memory, Anda dapat mengidentifikasi masalah memori hilang umum di pod.

      image.png

  4. Di bagian Pod File Cache, identifikasi penyebab memori cache yang besar.

    Ketika pod menempati sejumlah besar memori, working set memori pod mungkin melebihi ukuran memori yang digunakan secara aktual. Masalah memori hilang ini mempengaruhi performa aplikasi tempat pod tersebut berada.

    image.png

  5. Perbaiki masalah memori hilang.

    Anda dapat menggunakan fitur penjadwalan granular yang disediakan oleh ACK untuk memperbaiki masalah memori hilang. Untuk informasi lebih lanjut, lihat Aktifkan QoS Memori.

Referensi