全部产品
Search
文档中心

Alibaba Cloud Linux:Perbedaan antara cgroup v1 dan cgroup v2

更新时间:Nov 25, 2025

Di Linux, Control Groups (cgroups) menyediakan mekanisme untuk mengelola dan membatasi sumber daya seperti CPU, memori, dan I/O. Mekanisme ini memungkinkan pembatasan, pencatatan, serta isolasi sumber daya fisik yang dialokasikan ke proses dalam cgroups. Sebuah cgroup induk dapat digunakan untuk mengontrol pemanfaatan sumber daya oleh cgroups turunan. cgroup v1 dan cgroup v2 adalah dua versi utama dari cgroups, dengan desain dan penggunaan yang sangat berbeda. Topik ini menjelaskan perbedaan utama antara cgroup v1 dan cgroup v2.

Perbedaan antarmuka umum

Antarmuka cgroup v1

Nama Antarmuka

Tujuan

Antarmuka internal

Antarmuka cgroup v2 yang sesuai

cgroup.procs

Menulis ID proses (PIDs) untuk memigrasi tugas ke cgroup.

Tidak

cgroup.procs.

cgroup.clone_children

Nilai 1 menunjukkan bahwa cgroup anak mewarisi konfigurasi cpuset dari cgroup induk.

Catatan

Antarmuka ini hanya berlaku pada subsistem cpuset dan diklasifikasikan sebagai antarmuka umum karena alasan historis.

Tidak

Tidak tersedia

cgroup.sane_behavior

Mendukung fitur eksperimental dari antarmuka cgroup v2, yang memberikan kompatibilitas mundur.

Tidak

Tidak tersedia

notify_on_release

Nilai 1 menunjukkan bahwa tugas-tugas di antarmuka release_agent dieksekusi jika sebuah cgroup menjadi kosong.

Catatan

Antarmuka ini hanya ada di cgroup root.

Tidak

cgroup.events, yang mengimplementasikan fungsi serupa

release_agent

Tidak

tasks

Menulis ID thread (TIDs) untuk memigrasi thread ke cgroup.

Tidak

cgroup.threads.

pool_size

Mengontrol ukuran pool cache cgroup. Pool cache cgroup membantu mempercepat pembuatan dan pengikatan cgroups dalam skenario konkurensi tinggi.

Catatan

Antarmuka ini bergantung pada cgroup_rename dan tidak dapat digunakan di cgroup v2.

Ya

Tidak tersedia

Antarmuka cgroup v2

Nama Antarmuka

Tujuan

Antarmuka internal

Antarmuka cgroup v1 yang sesuai

cgroup.procs

Menulis PIDs untuk memigrasi tugas ke cgroup.

Tidak

cgroup.procs.

cgroup.type

Menulis string "threaded" untuk mengubah cgroup menjadi cgroup bertipe threaded guna memberikan kontrol granularitas thread.

Catatan

Hanya cpu, pids, dan perf_event controller bertipe threaded yang didukung.

Tidak

Tidak tersedia

cgroup.threads

Menulis TIDs untuk memigrasi thread ke cgroup.

Catatan

String "threaded" harus ditulis ke file antarmuka cgroup.type.

Tidak

tasks.

cgroup.controllers

Meminta semua subsistem yang tersedia untuk cgroup saat ini.

Tidak

Tidak tersedia

cgroup.subtree_control

Menentukan subsistem mana yang diaktifkan untuk mengontrol distribusi sumber daya dari cgroup ke cgroup anaknya.

Catatan

Subsistem dapat diminta menggunakan antarmuka cgroup.controllers.

Tidak

Tidak tersedia

cgroup.events

Meminta apakah proses aktif ada di cgroup saat ini dan apakah cgroup saat ini dibekukan. Anda dapat menggunakan fsnotify untuk mendengarkan antarmuka ini guna memeriksa apakah status antarmuka berubah.

Catatan

Antarmuka ini tidak ada di cgroup root.

Tidak

notify_on_release dan release_agent, yang digunakan bersama untuk mengimplementasikan fungsi serupa

cgroup.max.descendants

Mengontrol jumlah maksimum cgroup turunan yang diizinkan di cgroup saat ini.

Tidak

Tidak tersedia

cgroup.max.depth

Mengontrol kedalaman maksimum cgroup turunan yang diizinkan di cgroup saat ini.

Tidak

Tidak tersedia

cgroup.stat

Meminta jumlah cgroup turunan di bawah cgroup saat ini dan cgroup turunan yang berada dalam status Dying (dihapus).

Tidak

Tidak tersedia

cgroup.freeze

Mengontrol apakah akan membekukan tugas-tugas dalam cgroup.

Catatan

Antarmuka ini tidak ada di cgroup root.

Tidak

freezer.state di dalam subsistem freezer

cpu.stat

Meminta statistik tentang pemanfaatan CPU.

Tidak

Tidak tersedia

io.pressure

Permintaan Informasi Pressure Stall (PSI) untuk kinerja I/O, memori, dan CPU. Informasi tersebut dapat dipolling. Untuk informasi lebih lanjut, lihat topik berikut:

Tidak

Antarmuka io.pressure, memory.pressure, dan cpu.pressure di dalam subsistem cpuacct, yang dapat mengimplementasikan fitur PSI

memory.pressure

Tidak

cpu.pressure

Tidak

Perbedaan antarmuka subsistem

CPU

Antarmuka cgroup v1

Nama Antarmuka

Tujuan

Antarmuka internal

Antarmuka cgroup v2 yang sesuai

cpu.shares

Mengontrol bobot, berdasarkan alokasi waktu slice CPU kepada tugas-tugas dalam cgroup. Nilai default: 1024.

Tidak

cpu.weight dan cpu.weight.nice, yang menggunakan unit berbeda

cpu.idle

Mengontrol apakah akan menggunakan kebijakan penjadwalan idle untuk cgroup saat ini. Kebijakan penjadwalan idle mengalokasikan waktu slice berdasarkan bagian CPU terkecil. Runtime minimum tidak lagi didukung, yang memungkinkan sumber daya CPU mudah dialokasikan ke tugas-tugas non-idle.

Catatan

Jika nilai cpu.idle diatur ke 1, antarmuka cpu.shares menjadi tidak dapat ditulis dan hanya diatur ke 3.

Tidak

cpu.idle

cpu.priority

Prioritas preemptif granular halus. Preemption dilakukan ketika jam terganggu atau bangun. Prioritas preemptif granular halus bervariasi berdasarkan perbedaan prioritas untuk memungkinkan tugas-tugas dengan prioritas tinggi merebut memori dari tugas-tugas dengan prioritas rendah.

Ya

cpu.priority

cpu.cfs_quota_us

Runtime CPU yang dikontrol menggunakan Penjadwal Sepenuhnya Adil (CFS). cpu.cfs_quota_us menentukan runtime CPU maksimum dari tugas-tugas dalam cgroup dalam periode yang didefinisikan oleh antarmuka cpu.cfs_period_us.

Tidak

cpu.max

cpu.cfs_period_us

Tidak

cpu.cfs_burst_us

Durasi di mana tugas dapat meledak dalam periode yang ditentukan oleh antarmuka cpu.cfs_period_us. Untuk informasi lebih lanjut, lihat Enable the CPU burst feature for cgroup v1.

Tidak

cpu.max.burst

cpu.cfs_init_buffer_us

Durasi di mana tugas-tugas dalam cgroup dapat meledak ketika tugas-tugas tersebut diinisiasi.

Ya

cpu.max.init_buffer

cpu.stat

Meminta statistik tentang runtime CPU, seperti jumlah periode cpu.cfs_period_us dan jumlah kali sumber daya CPU yang digunakan oleh tugas-tugas dibatasi.

Tidak

cpu.stat

cpu.rt_runtime_us

Kontrol runtime CPU real-time. cpu.rt_runtime_us menentukan runtime maksimum dari tugas-tugas real-time dalam cgroup dalam periode cpu.rt_period_us.

Tidak

Tidak tersedia

cpu.rt_period_us

Tidak

Tidak tersedia

cpu.bvt_warp_ns

Kontrol atribut identitas grup untuk mengubah identitas cgroups, yang dapat digunakan untuk membedakan tugas offline dan memberikan jaminan kualitas layanan (QoS) CPU yang lebih baik untuk tugas online. Untuk informasi lebih lanjut, lihat fitur Group identity.

Ya

cpu.bvt_warp_ns

cpu.identity

Ya

cpu.identity

cpu.ht_stable

Menentukan apakah akan menghasilkan kebisingan peer SMT untuk menjaga konsistensi daya komputasi SMT.

Ya

Tidak tersedia

cpu.ht_ratio

Mengontrol apakah akan menggunakan kuota untuk memberikan daya komputasi tambahan ketika peer SMT menganggur guna menjaga konsistensi daya komputasi SMT.

Ya

cpu.ht_ratio

Antarmuka cgroup v2

Catatan

cgroup v2 tidak lagi mendukung subsistem cpuacct. Antarmuka atau fitur terkait spesifik dari subsistem cpuacct diimplementasikan oleh subsistem CPU di cgroup v2.

Nama Antarmuka

Tujuan

Antarmuka internal

Antarmuka cgroup v1 yang sesuai

cpu.weight

Mengontrol bobot, berdasarkan alokasi waktu slice CPU kepada tugas-tugas dalam cgroup. Nilai default: 100.

Tidak

cpu.shares, yang menggunakan unit berbeda

cpu.weight.nice

Mengontrol bobot, berdasarkan alokasi waktu slice CPU kepada tugas-tugas dalam cgroup. Nilai default: 0.

Tidak

cpu.shares, yang menggunakan unit berbeda

cpu.idle

Mengontrol apakah akan menggunakan kebijakan penjadwalan idle untuk cgroup saat ini. Kebijakan penjadwalan idle mengalokasikan waktu slice berdasarkan bagian CPU terkecil. Runtime minimum tidak lagi didukung, yang memungkinkan sumber daya CPU mudah dialokasikan ke tugas-tugas non-idle.

Catatan

Ketika nilai cpu.idle adalah 1, antarmuka cpu.weight dan cpu.weight.nice menjadi tidak dapat ditulis, dan bobot minimum sebesar 0,3 diberlakukan. Dalam hal ini, nilai cpu.weight dibulatkan menjadi 0.

Tidak

cpu.idle

cpu.priority

Prioritas preemptif granular halus. Preemption dilakukan ketika jam terganggu atau bangun. Prioritas preemptif granular halus bervariasi berdasarkan perbedaan prioritas untuk memungkinkan tugas-tugas dengan prioritas tinggi merebut memori dari tugas-tugas dengan prioritas rendah.

Ya

cpu.priority

cpu.max

Runtime CPU yang dikontrol menggunakan CFS. cpu.cfs_quota_us menentukan runtime CPU maksimum dari tugas-tugas dalam cgroup dalam periode cpu.cfs_period_us.

Tidak

cpu.cfs_quota_us, cpu.cfs_period_us

cpu.max.burst

Durasi di mana tugas-tugas dapat meledak dalam periode yang didefinisikan oleh antarmuka cpu.max.

Tidak

cpu.max.burst

cpu.max.init_buffer

Durasi di mana tugas-tugas dalam cgroup dapat meledak ketika tugas-tugas tersebut diinisiasi.

Ya

cpu.cfs_init_buffer_us

cpu.bvt_warp_ns

Kontrol atribut identitas grup untuk mengubah identitas cgroups, yang dapat digunakan untuk membedakan tugas-tugas offline dan memberikan jaminan QoS CPU yang lebih baik untuk tugas-tugas online.

Ya

cpu.bvt_warp_ns

cpu.identity

Ya

cpu.identity

cpu.sched_cfs_statistics

Meminta statistik tentang CFS, seperti runtime cgroup dan waktu tunggu cgroups pada level yang sama atau berbeda.

Catatan

Opsi kernel.sched_schedstats harus diaktifkan.

Ya

cpuacct.sched_cfs_statistics

cpu.wait_latency

Meminta latensi tugas-tugas yang menunggu dalam antrian.

Catatan

Opsi kernel.sched_schedstats dan /proc/cpusli/sched_lat_enabled harus diaktifkan.

Ya

cpuacct.wait_latency

cpu.cgroup_wait_latency

Meminta latensi cgroups yang menunggu dalam antrian. Antarmuka wait_latency menghitung latensi entitas penjadwalan tugas (SE), dan antarmuka cgroup_wait_latency menghitung latensi entitas SE grup.

Catatan

Opsi kernel.sched_schedstats dan /proc/cpusli/sched_lat_enabled harus diaktifkan.

Ya

cpuacct.cgroup_wait_latency

cpu.block_latency

Meminta latensi tugas-tugas yang diblokir karena penyebab non-I/O.

Catatan

Opsi kernel.sched_schedstats dan /proc/cpusli/sched_lat_enabled harus diaktifkan.

Ya

cpuacct.block_latency

cpu.ioblock_latency

Meminta latensi tugas-tugas yang diblokir karena operasi I/O.

Catatan

Opsi kernel.sched_schedstats dan /proc/cpusli/sched_lat_enabled harus diaktifkan.

Ya

cpuacct.ioblock_latency

cpu.ht_ratio

Mengontrol apakah akan menggunakan kuota untuk memberikan daya komputasi tambahan ketika peer SMT menganggur guna menjaga konsistensi daya komputasi SMT.

Catatan

Antarmuka ini hanya berlaku jika fitur penjadwalan inti diaktifkan.

Ya

cpu.ht_ratio

cpuset

Antarmuka cgroup v1

Nama Antarmuka

Tujuan

Antarmuka internal

Antarmuka cgroup v2 yang sesuai

cpuset.cpus

Mengontrol CPU tempat tugas-tugas dapat berjalan.

Catatan

Tugas-tugas tidak dapat dilampirkan ke cgroup ketika antarmuka ini kosong.

Tidak

cpuset.cpus

cpuset.mems

Mengontrol node NUMA yang dapat dialokasikan ke tugas-tugas dalam cgroup.

Catatan

Tugas-tugas tidak dapat dilampirkan ke cgroup ketika antarmuka ini kosong.

Tidak

cpuset.mems

cpuset.effective_cpus

Meminta CPU efektif tempat tugas-tugas berjalan. Nilai antarmuka ini dipengaruhi oleh peristiwa hotplug CPU.

Tidak

cpuset.cpus.effective

cpuset.effective_mems

Meminta node NUMA efektif yang dialokasikan ke tugas-tugas yang sedang berjalan. Nilai antarmuka ini dipengaruhi oleh peristiwa hotplug memori.

Tidak

cpuset.mems.effective

cpuset.cpu_exclusive

Mengontrol CPU mana yang digunakan secara eksklusif oleh cgroup dan tidak dapat digunakan oleh cpusets lainnya di level yang sama dalam cgroup.

Tidak

cpuset.cpus.partition, yang mendukung fungsi serupa

cpuset.mem_exclusive

Mengontrol node NUMA mana yang digunakan secara eksklusif oleh cgroup dan tidak dapat digunakan oleh cpusets lainnya di level yang sama dalam cgroup.

Tidak

Tidak tersedia

cpuset.mem_hardwall

Nilai 1 menunjukkan bahwa hanya memori dari node memori yang terpasang ke cpuset yang dapat dialokasikan ke tugas-tugas.

Tidak

Tidak tersedia

cpuset.sched_load_balance

Mengontrol apakah CPU diseimbangkan beban dalam cpuset. Secara default, fitur ini diaktifkan.

Tidak

Tidak tersedia

cpuset.sched_relax_domain_level

Mengontrol rentang pencarian CPU ketika penjadwal memigrasi tugas-tugas untuk menyeimbangkan beban CPU untuk tugas-tugas tersebut. Nilai default: -1.

  • -1: menerapkan kebijakan sistem default.

  • 0: tidak melakukan pencarian.

  • 1: mencari hyperthread dalam core yang sama.

  • 2: mencari core dalam paket yang sama.

  • 3: mencari CPU pada node yang sama.

  • 4: mencari CPU pada node dalam chunk yang sama.

  • 5: mencari CPU di seluruh sistem.

Tidak

Tidak tersedia

cpuset.memory_migrate

Nilai bukan nol menunjukkan bahwa jika tugas dialokasikan halaman memori di cpuset dan dimigrasi ke cpuset lain, halaman memori juga dapat dimigrasi ke cpuset baru.

Tidak

Tidak tersedia

cpuset.memory_pressure

Menghitung tekanan paging memori dari cpuset saat ini.

Tidak

Tidak tersedia

cpuset.memory_spread_page

Nilai 1 menunjukkan bahwa kernel secara merata mengalokasikan cache halaman ke node memori cpuset.

Tidak

Tidak tersedia

cpuset.memory_spread_slab

Nilai 1 menunjukkan bahwa kernel secara merata mengalokasikan cache slab ke node memori cpuset.

Tidak

Tidak tersedia

cpuset.memory_pressure_enabled

Nilai 1 menunjukkan bahwa pengumpulan statistik tekanan memori diaktifkan untuk cpuset.

Tidak

Tidak tersedia

Antarmuka cgroup v2

Nama Antarmuka

Tujuan

Antarmuka internal

Antarmuka cgroup v1 yang sesuai

cpuset.cpus

Mengontrol CPU tempat tugas-tugas dapat berjalan.

Catatan

Ketika nilai antarmuka ini kosong, CPU dari cpuset induk digunakan.

Tidak

cpuset.cpus

cpuset.mems

Mengontrol node NUMA yang dapat dialokasikan ke tugas-tugas dalam cgroup.

Catatan

Ketika nilai antarmuka ini kosong, node NUMA dari cpuset induk digunakan.

Tidak

cpuset.mems

cpuset.cpus.effective

Meminta CPU efektif tempat tugas-tugas berjalan. Nilai antarmuka ini dipengaruhi oleh peristiwa hotplug CPU.

Tidak

cpuset.effective_cpus

cpuset.mems.effective

Meminta node NUMA efektif yang dialokasikan ke tugas-tugas yang sedang berjalan. Nilai antarmuka ini dipengaruhi oleh peristiwa hotplug memori.

Tidak

cpuset.effective_mems

cpuset.cpus.partition

Mengontrol apakah CPU dari cpuset digunakan secara eksklusif. Jika "root" ditulis ke dalam antarmuka, CPU dari cpuset digunakan secara eksklusif.

Tidak

cpuset.cpu_exclusive, yang mengimplementasikan fungsi serupa

.__DEBUG__.cpuset.cpus.subpartitions

Meminta CPU mana yang digunakan secara eksklusif ketika "root" ditulis ke dalam antarmuka cpuset.cpus.partition.

Catatan

Antarmuka ini hanya tersedia jika fitur cgroup_debug diaktifkan untuk kernel cmdline.

Tidak

Tidak tersedia

blkio

Antarmuka cgroup v1

Nama Antarmuka

Tujuan

Antarmuka internal

Antarmuka cgroup v2 yang sesuai

blkio.throttle.read_bps_device

Menentukan jumlah maksimum byte per detik yang dapat dibaca oleh cgroup dari perangkat.

Contoh:

echo "<major>:<minor> <bps>" > /sys/fs/cgroup/blkio/<cgroup>/blkio.throttle.read_bps_device

Tidak

io.max

blkio.throttle.write_bps_device

Menentukan jumlah maksimum byte per detik yang dapat ditulis oleh cgroup ke perangkat.

Contoh:

echo "<major>:<minor> <bps>" > /sys/fs/cgroup/blkio/<cgroup>/blkio.throttle.write_bps_device

Tidak

io.max

blkio.throttle.read_iops_device

Menentukan jumlah maksimum operasi baca per detik yang dapat dilakukan oleh cgroup pada perangkat.

Contoh:

echo "<major>:<minor> <iops>" > /sys/fs/cgroup/blkio/<cgroup>/blkio.throttle.read_iops_device

Tidak

io.max

blkio.throttle.write_iops_device

Menentukan jumlah maksimum operasi baca per detik yang dapat dilakukan oleh cgroup pada perangkat.

Contoh:

echo "<major>:<minor> <iops>" > /sys/fs/cgroup/blkio/<cgroup>/blkio.throttle.write_iops_device

Tidak

io.max

blkio.throttle.io_service_bytes

Meminta statistik bandwidth.

Antarmuka ini mengumpulkan statistik bandwidth baca, tulis, sinkron, asinkron, discard, dan total dari semua perangkat. Unit: byte.

Tidak

io.stat

blkio.throttle.io_service_bytes_recursive

Versi rekursif dari antarmuka blkio.throttle.io_service_bytes.

Statistik yang dikumpulkan menggunakan antarmuka blkio.throttle.io_service_bytes mencakup data dari cgroups turunan.

Tidak

Tidak tersedia

blkio.throttle.io_serviced

Meminta statistik IOPS.

Antarmuka ini mengumpulkan statistik IOPS baca, tulis, sinkron, asinkron, discard, dan total dari semua perangkat.

Tidak

io.stat

blkio.throttle.io_serviced_recursive

Versi rekursif dari antarmuka blkio.throttle.io_serviced.

Statistik yang dikumpulkan menggunakan antarmuka blkio.throttle.io_serviced mencakup data dari cgroups turunan.

Tidak

Tidak tersedia

blkio.throttle.io_service_time

Meminta durasi antara pengiriman permintaan dan penyelesaian permintaan untuk operasi I/O, yang digunakan untuk mengukur latensi I/O rata-rata.

Untuk informasi lebih lanjut, lihat Tingkatkan pemantauan throttling I/O blok.

Ya

io.extstat

blkio.throttle.io_wait_time

Meminta durasi ketika operasi I/O menunggu dalam antrian penjadwal, yang digunakan untuk mengukur latensi I/O rata-rata.

Untuk informasi lebih lanjut, lihat Tingkatkan pemantauan throttling I/O blok.

Ya

io.extstat

blkio.throttle.io_completed

Meminta jumlah operasi I/O yang selesai, yang digunakan untuk mengukur latensi I/O rata-rata.

Untuk informasi lebih lanjut, lihat Tingkatkan pemantauan throttling I/O blok.

Ya

io.extstat

blkio.throttle.total_bytes_queued

Mengecek jumlah byte I/O yang telah dibatasi, yang digunakan untuk menganalisis apakah latensi I/O terkait dengan pembatasan.

Untuk informasi lebih lanjut, lihat Tingkatkan pemantauan throttling I/O blok.

Ya

io.extstat

blkio.throttle.total_io_queued

Meminta jumlah operasi I/O yang telah dibatasi, yang digunakan untuk menganalisis apakah latensi I/O terkait dengan pembatasan.

Untuk informasi lebih lanjut, lihat Tingkatkan pemantauan throttling I/O blok.

Ya

io.extstat

blkio.cost.model

Menentukan model biaya blk-iocost. Mode kontrol (ctrl) dapat diatur ke auto atau user.

Antarmuka ini hanya ada di cgroup root. Contoh:

echo "<major>:<minor> ctrl=user model=linear rbps=<rbps> rseqiops=<rseqiops> rrandiops=<rrandiops> wbps=<wbps> wseqiops=<wseqiops> wrandiops=<wrandiops>" > /sys/fs/cgroup/blkio/blkio.cost.model

Untuk informasi lebih lanjut, lihat Konfigurasikan fitur throttling berbasis bobot blk-iocost.

Ya

io.cost.model

blkio.cost.qos

Mengontrol fitur blk-iocost dan mengonfigurasi kebijakan QoS untuk memeriksa kemacetan disk.

Antarmuka ini hanya ada di cgroup root. Contoh:

echo "<major>:<minor> enable=1 ctrl=user rpct= rlat=5000 wpct=95.00 wlat=5000 min=50.00 max=150.00" > /sys/fs/cgroup/blkio/blkio.cost.qos

Untuk informasi lebih lanjut, lihat Konfigurasikan throttling berbasis bobot blk-iocost.

Ya

io.cost.qos

blkio.cost.weight

Menentukan bobot cgroup.

Antarmuka ini hanya ada di cgroup non-root dan dapat dikonfigurasi dalam mode berikut:

  • weight: menetapkan bobot yang sama untuk semua perangkat.

  • major:minor + weight: menetapkan bobot perangkat tertentu.

Untuk informasi lebih lanjut, lihat Konfigurasikan fitur throttling berbasis bobot blk-iocost.

Ya

io.cost.weight

blkio.cost.stat

Meminta statistik blk-iocost. Antarmuka ini hanya ada di cgroup non-root.

Ya

Tidak tersedia

Antarmuka cgroup v2

Nama Antarmuka

Tujuan

Antarmuka internal

Antarmuka cgroup v1 yang sesuai

io.max

Antarmuka throttling yang menentukan laju pembatasan baca dan tulis dalam byte/detik dan IOPS. Contoh:

echo "<major>:<minor> rbps=<bps> wbps=<bps> riops=<iops> wiops=<iops>" > /sys/fs/cgroup/<cgroup>/io.max

Tidak

blkio.throttle.read_bps_device

blkio.throttle.read_iops_device

blkio.throttle.write_bps_device

blkio.throttle.write_iops_device

io.stat

Meminta statistik operasi I/O, yang mencakup laju operasi baca, tulis, dan discard dalam byte/detik dan IOPS.

Tidak

blkio.throttle.io_service_bytes

blkio.throttle.io_serviced

io.extstat

Meminta statistik I/O tambahan, termasuk waktu tunggu, waktu layanan, jumlah operasi I/O yang selesai, dan laju pembatasan dalam byte/detik dan IOPS.

Tidak

blkio.throttle.io_service_time

blkio.throttle.io_wait_time

blkio.throttle.io_completed

blkio.throttle.total_bytes_queued

blkio.throttle.total_io_queued

io.cost.model

Menentukan model biaya blk-iocost. Mode kontrol (ctrl) dapat diatur ke auto atau user.

Antarmuka ini hanya ada di cgroup root. Contoh:

echo "<major>:<minor> ctrl=user model=linear rbps=<rbps> rseqiops=<rseqiops> rrandiops=<rrandiops> wbps=<wbps> wseqiops=<wseqiops> wrandiops=<wrandiops>" > /sys/fs/cgroup/io.cost.model

Untuk informasi lebih lanjut, lihat Konfigurasikan throttling berbasis bobot blk-iocost.

Tidak

blkio.cost.model

io.cost.qos

Mengontrol fitur blk-iocost dan mengonfigurasi kebijakan QoS untuk memeriksa kemacetan disk.

Antarmuka ini hanya ada di cgroup root. Contoh:

echo "<major>:<minor> enable=1 ctrl=user rpct= rlat=5000 wpct=95.00 wlat=5000 min=50.00 max=150.00" > /sys/fs/cgroup/io.cost.qos

Untuk informasi lebih lanjut, lihat Konfigurasikan throttling berbasis bobot blk-iocost.

Tidak

blkio.cost.qos

io.cost.weight

Menentukan bobot cgroup.

Antarmuka ini hanya ada di cgroup non-root dan dapat dikonfigurasi dalam mode berikut:

  • weight: menetapkan bobot yang sama untuk semua perangkat.

  • major:minor + weight: menetapkan bobot perangkat tertentu.

Untuk informasi lebih lanjut, lihat Konfigurasikan throttling berbasis bobot blk-iocost.

Tidak

blkio.cost.weight

memory

Antarmuka cgroup v1

Nama Antarmuka

Tujuan

Antarmuka internal

Antarmuka cgroup v2 yang sesuai

memory.usage_in_bytes

Meminta penggunaan memori saat ini.

Tidak

Tidak tersedia

memory.max_usage_in_bytes

Meminta penggunaan memori maksimum.

Tidak

Tidak tersedia

memory.limit_in_bytes

Menentukan batas atas keras pada penggunaan memori.

Tidak

Tidak tersedia

memory.soft_limit_in_bytes

Menentukan batas bawah lunak pada penggunaan memori.

Tidak

Tidak tersedia

memory.failcnt

Meminta jumlah kali penggunaan memori mencapai batas atas.

Tidak

Tidak tersedia

memory.mglru_batch_size

Menentukan ukuran memori yang direklamasi secara proaktif berdasarkan kerangka Multi-Generational Least Recently Used (MGLRU). Upaya dilakukan untuk melepaskan CPU di antara batch reklamasi memori.

Ya

Tidak tersedia

memory.mglru_reclaim_kbytes

Menentukan ukuran memori yang direklamasi secara proaktif berdasarkan kerangka MGLRU.

Ya

Tidak tersedia

memory.wmark_ratio

Mengontrol fitur reklamasi asinkron backend memcg dan menetapkan watermark memcg yang memicu reklamasi asinkron. Unit: persen dari batas atas memori memcg. Nilai valid: 0 hingga 100.

  • Nilai default adalah 0, yang menunjukkan bahwa fitur reklamasi asinkron backend memcg dinonaktifkan.

  • Ketika nilainya bukan 0, fitur reklamasi asinkron backend memcg diaktifkan. Anda dapat menetapkan watermark yang sesuai.

Untuk informasi lebih lanjut, lihat Reklamasi asinkron backend memcg.

Ya

memory.wmark_ratio

memory.wmark_high

Antarmuka hanya-baca.

  • Ketika penggunaan memori memcg melebihi nilai antarmuka ini, reklamasi asinkron backend dimulai.

  • Nilai antarmuka ini dihitung menggunakan rumus berikut: memory.wmark_high = memory.limit_in_bytes × memory.wmark_ratio/100.

  • Ketika fitur reklamasi asinkron backend memcg dinonaktifkan, memory.wmark_high default ke nilai besar untuk mencegah reklamasi asinkron backend dipicu.

  • File antarmuka ini tidak disimpan di direktori root memcg.

Untuk informasi lebih lanjut, lihat Reklamasi asinkron backend memcg.

Ya

memory.wmark_low

Antarmuka hanya-baca.

  • Ketika penggunaan memori memcg turun di bawah nilai antarmuka ini, reklamasi asinkron backend berakhir.

  • Nilai antarmuka ini dihitung menggunakan rumus berikut: memory.wmark_low = memory.wmark_high-memory.limit_in_bytes × memory.wmark_scale_factor/10000.

  • File antarmuka ini tidak disimpan di direktori root memcg.

Untuk informasi lebih lanjut, lihat Reklamasi asinkron backend memcg.

Ya

memory.wmark_scale_factor

Menentukan interval antara nilai memory.wmark_high dan memory.wmark_low. Unit: 0,01 persen dari batas atas memori memcg. Nilai valid: 1 hingga 1000.

  • Antarmuka ini mewarisi nilai dari grup induknya ketika antarmuka dibuat. Nilai yang diwarisi adalah 50, yang menunjukkan 0,50% dari batas atas memori memcg. Ini juga merupakan nilai default.

  • File antarmuka ini tidak disimpan di direktori root memcg.

Untuk informasi lebih lanjut, lihat Reklamasi asinkron backend memcg.

Ya

memory.wmark_min_adj

Faktor yang digunakan dalam fitur penilaian watermark minimum global memcg.

Nilai dari antarmuka ini menunjukkan penyesuaian dalam persentase terhadap watermark minimum global. Nilai valid: -25 hingga 50.

  • Antarmuka ini mewarisi nilai 0 dari cgroup induk saat antarmuka dibuat. Oleh karena itu, nilai defaultnya adalah 0.

  • Nilai negatif dalam rentang nilai merupakan penyesuaian dalam persentase terhadap rentang [0, WMARK_MIN], di mana WMARK_MIN adalah nilai dari wmark_min global. Sebagai contoh, jika memory.wmark_min_adj adalah -25, WMARK_MIN dari sebuah memcg dihitung dengan menggunakan rumus berikut: memcg WMARK_MIN = WMARK_MIN + (WMARK_MIN - 0) × -25%.

  • Nilai positif dalam rentang merupakan penyesuaian dalam persentase terhadap rentang [WMARK_MIN, WMARK_LOW]. WMARK_MIN adalah nilai dari wmark_min global, dan WMARK_LOW adalah nilai dari wmark_low global.

  • Ketika watermark minimum global offset dipicu, throttling dilakukan, dan waktu throttling secara linear sebanding dengan penggunaan memori berlebih. Nilai valid untuk waktu throttling: 1 hingga 1000. Satuan: milidetik.

Untuk informasi lebih lanjut, lihat Penilaian watermark minimum global memcg.

Ya

memory.force_empty

Menentukan apakah akan secara paksa mereklaim halaman memori.

Tidak

Tidak tersedia

memory.use_hierarchy

Menentukan apakah akan mengumpulkan statistik hierarkis.

Ya

Tidak tersedia

memory.swappiness

Menentukan parameter swappiness dari vmscan, yang mengontrol kecenderungan kernel untuk menggunakan partisi swap.

Tidak

Tidak tersedia

memory.priority

Menentukan prioritas memcg. Antarmuka ini menyediakan 13 prioritas out-of-memory (OOM) untuk memilah bisnis. Nilai valid: 0 hingga 12. Semakin besar nilainya, semakin tinggi prioritasnya. Prioritas dari cgroup induk tidak diwariskan oleh cgroup turunannya. Nilai default: 0.

  • Antarmuka ini digunakan untuk mengimplementasikan memcg QoS. Nilai prioritas, bukan variabel global, digunakan untuk memilah cgroup saudara hanya dalam cgroup induk yang sama.

  • Cgroup memcg saudara dengan prioritas yang sama diurutkan berdasarkan penggunaan memori. Kesalahan OOM dipicu pada memcg anak yang menggunakan jumlah memori terbesar.

Ya

memory.priority

memory.move_charge_at_immigrate

Menentukan apakah biaya dari suatu tugas dipindahkan bersama dengan tugas tersebut ketika tugas dipindahkan antar cgroups, yang merupakan kebijakan kontrol statistik.

Tidak

Tidak tersedia

memory.oom_control

Menentukan apakah akan memicu OOM killer untuk menghentikan tugas saat terjadi kesalahan OOM dan menghasilkan notifikasi tentang status OOM.

Tidak

Tidak tersedia

memory.oom.group

Mengontrol fitur grup OOM yang dapat menghentikan semua tugas dalam memcg jika terjadi kesalahan OOM.

Ya

memory.oom.group

memory.pressure_level

Menentukan notifikasi tekanan memori.

Tidak

Tidak tersedia

memory.kmem.limit_in_bytes

Menentukan batas keras pada penggunaan memori kernel.

Tidak

Tidak tersedia

memory.kmem.usage_in_bytes

Mengecek penggunaan memori kernel.

Tidak

Tidak tersedia

memory.kmem.failcnt

Mengecek jumlah kali penggunaan memori kernel mencapai batas atas.

Tidak

Tidak tersedia

memory.kmem.max_usage_in_bytes

Meminta penggunaan memori maksimum kernel.

Tidak

Tidak tersedia

memory.kmem.slabinfo

Memeriksa penggunaan memori slab kernel.

Tidak

Tidak tersedia

memory.kmem.tcp.limit_in_bytes

Menentukan batas keras pada penggunaan memori TCP kernel.

Tidak

T/A

memory.kmem.tcp.usage_in_bytes

Memeriksa penggunaan memori TCP kernel.

Tidak

Tidak tersedia

memory.kmem.tcp.failcnt

Mengecek jumlah kali penggunaan memori TCP kernel mencapai batas atas.

Tidak

Tidak tersedia

memory.kmem.tcp.max_usage_in_bytes

Memeriksa penggunaan memori TCP maksimum dari kernel.

Tidak

Tidak tersedia

memory.memsw.usage_in_bytes

Memeriksa penggunaan memori dan penggunaan memori swap.

Tidak

Tidak tersedia

memory.memsw.max_usage_in_byte

Mengecek penggunaan maksimum dari memori dan memori swap.

Tidak

Tidak tersedia

memory.memsw.limit_in_bytes

Menentukan batas atas total penggunaan memori dan memori swap yang digunakan oleh tugas-tugas dalam cgroup.

Tidak

Tidak tersedia

memory.memsw.failcnt

Mengecek jumlah kali total penggunaan memori dan memori swap mencapai batas atas.

Tidak

Tidak tersedia

memory.swap.high

Menentukan batas atas penggunaan memori swap yang tersedia dalam sebuah cgroup.

Ya

memory.swap.high

memory.swap.events

Meminta peristiwa yang terjadi ketika penggunaan memori swap mencapai batas atas.

Ya

memory.swap.events

memory.min

Menentukan jumlah memori minimum yang harus dipertahankan oleh sebuah cgroup, yang merupakan jaminan keras untuk memori.

Untuk informasi lebih lanjut, lihat Memcg QoS fitur dari antarmuka cgroup v1.

Ya

memory.min

memory.low

Menentukan batas bawah memori yang dapat dipertahankan oleh sebuah cgroup, yang merupakan jaminan lunak untuk memori. Untuk informasi lebih lanjut, lihat Memcg QoS feature of the cgroup v1 interface.

Ya

memory.low

memory.high

Menentukan batas penggunaan memori. Untuk informasi lebih lanjut, lihat Fitur Memcg QoS dari antarmuka cgroup v1.

Ya

memory.high

memory.allow_duptext

Ketika parameter /sys/kernel/mm/duptext/enabled dikonfigurasi untuk mengaktifkan fitur duptext kode secara global, antarmuka ini digunakan untuk mengontrol apakah fitur duptext kode diaktifkan untuk tugas-tugas dalam memcg tertentu. Nilai valid: 0 dan 1. Nilai default: 0.

  • 1: mengaktifkan fitur duptext kode untuk tugas-tugas dalam memcg tertentu.

  • 0: menonaktifkan fitur duptext kode untuk tugas-tugas dalam memcg tertentu.

Untuk informasi lebih lanjut, lihat Fitur duptext kode.

Ya

memory.allow_duptext

memory.allow_duptext_refresh

Menentukan apakah fitur duptext kode segera dimulai ketika file biner dibuat atau diunduh. Fitur duptext kode tidak berlaku dalam kasus PageDirty atau PageWriteback. Antarmuka ini menggunakan mode tugas asinkron untuk menyegarkan tugas ketika fitur duptext kode tidak berlaku dalam skenario PageDirty atau PageWriteback.

Ya

memory.allow_duptext_refresh

memory.duptext_nodes

Membatasi alokasi node memori duptext.

Ya

memory.duptext_nodes

memory.allow_text_unevictable

Menentukan apakah cuplikan memcg dikunci.

Ya

memory.allow_text_unevictable

memory.text_unevictable_percent

Menentukan rasio jumlah memori yang digunakan oleh cuplikan kode terkunci terhadap jumlah total memori yang digunakan oleh memcg.

Ya

memory.text_unevictable_percent

memory.thp_reclaim

Mengontrol fitur reklamasi Transparent Enormous Pages (THP). Nilai valid:

  • reclaim: mengaktifkan fitur reklamasi THP.

  • swap: dicadangkan untuk penggunaan masa depan.

  • disable: menonaktifkan fitur reklamasi THP.

Nilai default: disable.

Untuk informasi lebih lanjut, lihat Reklamasi THP.

Ya

memory.thp_reclaim

memory.thp_reclaim_stat

Meminta status fitur reklamasi THP. Parameter antarmuka ini:

  • queue_length: jumlah THP dalam antrian setiap node. Jika fitur reklamasi THP diaktifkan, THP ditambahkan ke antrian reklamasi.

  • split_hugepage: jumlah total THP yang dipecah oleh fitur THP reclaim pada setiap node.

  • reclaim_subpage: jumlah total halaman sub-nol yang direklamasi oleh fitur reklamasi THP untuk setiap node.

Nilai parameter di atas terdaftar dalam urutan menaik berdasarkan ID node NUMA, seperti node0 dan node1, dari kiri ke kanan.

Untuk informasi lebih lanjut, lihat Reklamasi THP.

Ya

memory.thp_reclaim_stat

memory.thp_reclaim_ctrl

Menentukan bagaimana fitur reklamasi THP dipicu. Parameter antarmuka ini:

  • threshold: jumlah maksimum halaman sub-nol dalam sebuah THP. Jika jumlah halaman sub-nol dalam sebuah THP melebihi nilai threshold, fitur reklamasi THP dipicu. Nilai default: 16.

  • reclaim: memicu fitur reklamasi THP.

Untuk informasi lebih lanjut, lihat Reklamasi THP.

Ya

memory.thp_reclaim_ctrl

memory.thp_control

Mengontrol fitur memcg THP. Antarmuka ini dapat digunakan untuk melarang penerapan anon, shmem, dan file THPs.

Sebagai contoh, memcg offline tidak diizinkan menggunakan THPs. Hal ini membantu mengurangi kontes THP dan pemborosan memori, meskipun fragmentasi memori tidak dapat dicegah.

Ya

memory.thp_control

memory.reclaim_caches

Menentukan apakah kernel secara proaktif mereklamasi cache dalam memcg. Contoh: echo 100M > memory.reclaim_caches.

Ya

memory.reclaim_caches

memory.pgtable_bind

Menentukan apakah permintaan tabel halaman memori diterapkan secara paksa pada node saat ini.

Ya

memory.pgtable_bind

memory.pgtable_misplaced

Meminta statistik tentang memori halaman dalam tabel halaman ketika memori halaman dialokasikan di seluruh node.

Ya

memory.pgtable_misplaced

memory.oom_offline

Dalam fitur Quick OOM, Anda dapat menggunakan antarmuka ini untuk menandai memcg dari tugas offline.

Ya

memory.oom_offline

memory.async_fork

Mengontrol fitur Async-fork, sebelumnya dikenal sebagai Fast Convergent Merging (FCM), untuk memcg.

Ya

memory.async_fork

memory.direct_compact_latency

Menentukan latensi dalam pemampatan memori langsung dari fitur memsli.

Ya

memory.direct_compact_latency

memory.direct_reclaim_global_latency

Menentukan latensi dalam pemulihan memori global langsung dari fitur memsli.

Ya

memory.direct_reclaim_global_latency

memory.direct_reclaim_memcg_latency

Menentukan latensi dalam pemulihan memori memcg langsung dari fitur memsli.

Ya

memory.direct_reclaim_memcg_latency

memory.direct_swapin_latency

Menentukan latensi dalam pertukaran memori langsung masuk dari fitur memsli.

Ya

memory.direct_swapin_latency

memory.direct_swapout_global_latency

Menentukan latensi dalam pertukaran memori global langsung keluar dari fitur memsli.

Ya

memory.direct_swapout_global_latency

memory.direct_swapout_memcg_latency

Menentukan latensi dalam pertukaran memori memcg langsung keluar dari fitur memsli.

Ya

memory.direct_swapout_memcg_latency

memory.exstat

Meminta statistik tentang memori tambahan dan memori ekstra. Statistik tentang fitur internal berikut dikumpulkan:

  • wmark_min_throttled_ms: waktu pembatasan yang telah berlalu sejak watermark minimum global offset terlampaui.

  • wmark_reclaim_work_ms: durasi di mana kernel mencoba mereklamasi memori dari cgroup.

  • unevictable_text_size_kb: ukuran cuplikan kode yang akan dikunci.

  • pagecache_limit_reclaimed_kb: batas cache halaman.

Untuk informasi lebih lanjut, lihat Memcg Exstat fitur.

Peningkatan internal

memory.exstat

memory.idle_page_stats

Meminta statistik tentang penggunaan memori kidled dari memcg individu dan informasi hierarki cgroup.

Ya

memory.idle_page_stats

memory.idle_page_stats.local

Meminta statistik tentang penggunaan memori kidled dari memcg individu.

Ya

memory.idle_page_stats.local

memory.numa_stat

Meminta statistik NUMA untuk memori anonim, file, dan terkunci.

Tidak

memory.numa_stat

memory.pagecache_limit.enable

Mengontrol fitur Batas Cache Halaman.

Untuk informasi lebih lanjut, lihat Fitur Batas Cache Halaman.

Ya

memory.pagecache_limit.enable

memory.pagecache_limit.size

Menentukan ukuran batas cache halaman.

Ya

memory.pagecache_limit.size

memory.pagecache_limit.sync

Menentukan mode fitur Batas Cache Halaman, yang sinkron atau asinkron.

Ya

memory.pagecache_limit.sync

memory.reap_background

Menentukan apakah reaper zombie memcg mereklamasi memori dari memcg dalam mode asinkron latar belakang.

Ya

memory.reap_background

memory.stat

Meminta statistik memori.

Tidak

memory.stat

memory.use_priority_oom

Mengontrol fitur kebijakan prioritas OOM memcg.

Untuk informasi lebih lanjut, lihat Kebijakan prioritas OOM memcg.

Ya

memory.use_priority_oom

memory.use_priority_swap

Menentukan apakah memori ditukar berdasarkan prioritas cgroups.

Untuk informasi lebih lanjut, lihat Kebijakan prioritas OOM memcg.

Ya

memory.use_priority_swap

Antarmuka cgroup v2

Nama Antarmuka

Tujuan

Antarmuka internal

Antarmuka cgroup v1 yang sesuai

memory.current

Meminta penggunaan memori.

Tidak

Tidak tersedia

memory.min

Menentukan jumlah minimum memori yang harus dipertahankan oleh cgroup, yang merupakan jaminan keras memori.

Untuk informasi lebih lanjut, lihat Fitur QoS memcg dari antarmuka cgroup v1.

Tidak

memory.min

memory.low

Menentukan batas bawah memori yang dapat dipertahankan oleh cgroup, yang merupakan jaminan lunak memori.

Untuk informasi lebih lanjut, lihat Fitur QoS memcg dari antarmuka cgroup v1.

Tidak

memory.low

memory.high

Menentukan batas atas penggunaan memori.

Untuk informasi lebih lanjut, lihat Fitur QoS memcg dari antarmuka cgroup v1.

Tidak

memory.high

memory.max

Menentukan batas pembatasan penggunaan memori.

Tidak

memory.max

memory.swap.current

Meminta penggunaan swap memori.

Tidak

Tidak tersedia

memory.swap.high

Menentukan batas atas pada penggunaan swap memori yang tersedia di cgroup.

Tidak

Tidak tersedia

memory.swap.max

Menentukan batas keras pada penggunaan swap memori.

Tidak

Tidak tersedia

memory.swap.events

Meminta peristiwa yang terjadi ketika penggunaan swap memori mencapai batas atas.

Tidak

Tidak tersedia

memory.oom.group

Menentukan apakah fitur grup OOM diaktifkan, yang dapat membunuh semua tugas dalam memcg jika terjadi kesalahan OOM.

Tidak

memory.oom.group

memory.wmark_ratio

Mengontrol fitur reklamasi asinkron backend memcg dan menetapkan watermark memori memcg yang memicu reklamasi asinkron. Unit: persen dari batas atas memori memcg. Nilai valid: 0 hingga 100.

  • Nilai default adalah 0, yang menunjukkan bahwa fitur reklamasi asinkron backend memcg dinonaktifkan.

  • Ketika nilainya bukan 0, fitur reklamasi asinkron backend memcg diaktifkan. Anda dapat menetapkan watermark yang sesuai.

Untuk informasi lebih lanjut, lihat Reklamasi asinkron backend memcg.

Ya

memory.wmark_ratio

memory.wmark_high

Antarmuka hanya-baca.

  • Ketika penggunaan memori memcg melebihi nilai antarmuka ini, reklamasi asinkron backend dimulai.

  • Nilai antarmuka ini dihitung menggunakan rumus berikut: memory.wmark_high = memory.limit_in_bytes × memory.wmark_ratio/100.

  • Ketika fitur reklamasi asinkron backend memcg dinonaktifkan, memory.wmark_high default ke nilai besar untuk mencegah reklamasi asinkron backend dipicu.

  • File antarmuka ini tidak disimpan di direktori root memcg.

Untuk informasi lebih lanjut, lihat Reklamasi asinkron backend memcg.

Ya

memory.wmark_high

memory.wmark_low

Antarmuka hanya-baca.

  • Ketika penggunaan memori memcg turun di bawah nilai antarmuka ini, reklamasi asinkron backend berakhir.

  • Nilai antarmuka ini dihitung menggunakan rumus berikut: memory.wmark_low = memory.wmark_high-memory.limit_in_bytes × memory.wmark_scale_factor/10000.

  • File antarmuka ini tidak disimpan di direktori root memcg.

Untuk informasi lebih lanjut, lihat Reklamasi asinkron backend memcg.

Ya

memory.wmark_low

memory.wmark_scale_factor

Menentukan interval antara nilai memory.wmark_high dan memory.wmark_low. Unit: 0,01 persen dari batas atas memori memcg. Nilai valid: 1 hingga 1000.

  • Antarmuka ini mewarisi nilai dari grup induknya ketika antarmuka dibuat. Nilai yang diwarisi adalah 50, yang menunjukkan 0,50% dari batas atas memori memcg. Ini juga merupakan nilai default.

  • File antarmuka ini tidak disimpan di direktori root memcg.

Untuk informasi lebih lanjut, lihat Reklamasi asinkron backend memcg.

Ya

memory.wmark_scale_factor

memory.wmark_min_adj

Faktor yang digunakan dalam fitur penilaian watermark minimum global memcg.

Nilai antarmuka ini menunjukkan penyesuaian dalam persen terhadap watermark minimum global. Nilai valid: -25 hingga 50.

  • Antarmuka ini mewarisi nilai 0 dari cgroup induk ketika antarmuka dibuat. Oleh karena itu, nilai default adalah 0.

  • Nilai negatif dalam rentang nilai adalah penyesuaian dalam persen terhadap rentang [0, WMARK_MIN], di mana WMARK_MIN adalah nilai global wmark_min. Sebagai contoh, jika memory.wmark_min_adj adalah -25, WMARK_MIN dari sebuah memcg dihitung menggunakan rumus berikut: memcg WMARK_MIN = WMARK_MIN + (WMARK_MIN - 0) × -25%.

  • Nilai positif dalam rentang adalah penyesuaian dalam persen terhadap rentang [WMARK_MIN, WMARK_LOW]. WMARK_MIN adalah nilai global wmark_min, dan WMARK_LOW adalah nilai global wmark_low.

  • Ketika watermark minimum global offset dipicu, pembatasan dilakukan, dan waktu pembatasan sebanding secara linear dengan penggunaan memori yang berlebih. Nilai valid waktu pembatasan: 1 hingga 1000. Unit: milidetik.

Untuk informasi lebih lanjut, lihat Penilaian watermark minimum global memcg.

Ya

memory.wmark_min_adj

memory.priority

Menentukan prioritas memcg. Antarmuka ini menyediakan 13 prioritas OOM memcg untuk mengurutkan bisnis. Nilai valid: 0 hingga 12. Nilai yang lebih besar menunjukkan prioritas yang lebih tinggi. Prioritas cgroup induk tidak diwarisi oleh cgroup turunannya. Nilai default: 0.

  • Antarmuka ini digunakan untuk mengimplementasikan QoS memcg. Nilai prioritas, bukan variabel global, digunakan untuk mengurutkan cgroup saudara hanya dalam cgroup induk yang sama.

  • Cgroups saudara dengan prioritas yang sama diurutkan berdasarkan penggunaan memori. Kesalahan OOM dipicu pada cgroup anak yang menggunakan jumlah memori terbesar.

Untuk informasi lebih lanjut, lihat Kebijakan prioritas OOM memcg.

Ya

memory.priority

memory.use_priority_oom

Mengontrol fitur kebijakan prioritas OOM memcg.

Untuk informasi lebih lanjut, lihat Kebijakan prioritas OOM memcg.

Ya

memory.use_priority_oom

memory.use_priority_swap

Menentukan apakah memori ditukar berdasarkan prioritas cgroups.

Untuk informasi lebih lanjut, lihat Kebijakan prioritas OOM memcg.

Ya

memory.use_priority_swap

memory.direct_reclaim_global_latency

Menentukan latensi dalam pemulihan memori global langsung dari fitur memsli.

Ya

memory.direct_reclaim_global_latency

memory.direct_reclaim_memcg_latency

Menentukan latensi dalam pemulihan memori memcg langsung dari fitur memsli.

Ya

memory.direct_reclaim_memcg_latency

memory.direct_compact_latency

Menentukan latensi dalam pemampatan memori langsung dari fitur memsli.

Ya

memory.direct_compact_latency

memory.direct_swapout_global_latency

Menentukan latensi dalam pertukaran memori global langsung keluar dari fitur memsli.

Ya

memory.direct_swapout_global_latency

memory.direct_swapout_memcg_latency

Menentukan latensi dalam pertukaran memori memcg langsung keluar dari fitur memsli.

Ya

memory.direct_swapout_memcg_latency

memory.direct_swapin_latency

Menentukan latensi dalam pertukaran memori langsung masuk dari fitur memsli.

Ya

memory.direct_swapin_latency

memory.exstat

Meminta statistik tentang memori tambahan dan memori ekstra. Statistik tentang fitur internal berikut dikumpulkan:

  • wmark_min_throttled_ms: waktu pembatasan yang telah berlalu sejak watermark minimum global offset terlampaui.

  • wmark_reclaim_work_ms: durasi di mana kernel mencoba mereklamasi memori dari cgroup.

  • unevictable_text_size_kb: ukuran cuplikan kode yang akan dikunci.

  • pagecache_limit_reclaimed_kb: batas cache halaman.

Untuk informasi lebih lanjut, lihat Exstat memcg.

Ya

memory.exstat

memory.pagecache_limit.enable

Mengontrol fitur Batas Cache Halaman.

Untuk informasi lebih lanjut, lihat Fitur Batas Cache Halaman.

Ya

memory.pagecache_limit.enable

memory.pagecache_limit.size

Menentukan ukuran batas cache halaman.

Untuk informasi lebih lanjut, lihat Fitur Batas Cache Halaman.

Ya

memory.pagecache_limit.size

memory.pagecache_limit.sync

Menentukan mode fitur Batas Cache Halaman, yang sinkron atau asinkron.

Untuk informasi lebih lanjut, lihat Fitur Batas Cache Halaman.

Ya

memory.pagecache_limit.sync

memory.idle_page_stats

Meminta statistik tentang memori kidled dari memcg individu setiap hierarki.

Ya

memory.idle_page_stats

memory.idle_page_stats.local

Meminta statistik tentang memori kidled dari memcg individu.

Ya

memory.idle_page_stats.local

memory.numa_stat

Meminta statistik NUMA untuk memori anonim, file, dan terkunci.

Ya

memory.numa_stat

memory.reap_background

Menentukan apakah reaper zombie memcg mereklamasi memori dari memcg dalam mode asinkron latar belakang.

Ya

memory.reap_background

memory.stat

Meminta statistik memori.

Tidak

memory.stat

memory.use_priority_oom

Mengontrol fitur kebijakan prioritas OOM memcg.

Untuk informasi lebih lanjut, lihat Kebijakan prioritas OOM memcg.

Ya

memory.use_priority_oom

cpuacct

Nama antarmuka

Tujuan

Antarmuka internal

Antarmuka cgroup v2 yang sesuai

cpuacct.usage

Meminta total waktu CPU yang digunakan. Unit: nanodetik.

Tidak

cpu.stat, yang menampilkan data serupa

cpuacct.usage_user

Meminta waktu CPU yang digunakan dalam mode pengguna. Unit: nanodetik.

Tidak

cpuacct.usage_sys

Meminta waktu CPU yang digunakan dalam mode kernel. Unit: nanodetik.

Tidak

cpuacct.usage_percpu

Meminta waktu penggunaan setiap CPU. Unit: nanodetik.

Tidak

cpuacct.usage_percpu_user

Meminta waktu penggunaan setiap CPU dalam mode pengguna. Unit: nanodetik.

Tidak

cpuacct.usage_percpu_sys

Meminta waktu penggunaan setiap CPU dalam mode kernel. Unit: nanodetik.

Tidak

cpuacct.usage_all

Meminta ringkasan dari antarmuka cpuacct.usage_percpu_user dan cpuacct.usage_percpu_sys. Unit: nanodetik.

Tidak

cpuacct.stat

Meminta waktu CPU yang digunakan dalam mode pengguna dan mode kernel. Unit: tick.

Tidak

cpuacct.proc_stat

Meminta data seperti waktu CPU, beban rata-rata (loadavg), dan jumlah tugas yang sedang berjalan pada tingkat kontainer.

Ya

cpuacct.enable_sli

Mengontrol apakah loadavg dihitung pada tingkat kontainer.

Ya

Tidak tersedia

cpuacct.sched_cfs_statistics

Meminta statistik tentang CFS, seperti runtime cgroup dan waktu tunggu cgroups pada level yang sama atau berbeda.

Ya

cpu.sched_cfs_statistics

cpuacct.wait_latency

Meminta latensi tugas-tugas yang menunggu dalam antrian.

Ya

cpu.wait_latency

cpuacct.cgroup_wait_latency

Meminta latensi cgroups yang menunggu dalam antrian. Antarmuka wait_latency menghitung latensi entitas penjadwalan tugas (SE), dan antarmuka cgroup_wait_latency menghitung latensi entitas SE grup.

Ya

cpu.cgroup_wait_latency

cpuacct.block_latency

Meminta latensi tugas-tugas yang diblokir karena penyebab non-I/O.

Ya

cpu.block_latency

cpuacct.ioblock_latency

Meminta latensi tugas-tugas yang diblokir karena operasi I/O.

Ya

cpu.ioblock_latency

io.pressure

Kueri PSI untuk kinerja I/O, memori, dan CPU. Informasi tersebut dapat di-polling. Untuk informasi lebih lanjut, lihat topik berikut:

Tidak

Tidak tersedia

memory.pressure

Tidak

cpu.pressure

Tidak

freezer

Nama Antarmuka

Tujuan

Antarmuka internal

Antarmuka cgroup v2 yang sesuai

freezer.state

Mengontrol status pembekuan. Nilai valid: FROZEN dan THAWED.

Tidak

cgroup.freeze

freezer.self_freezing

Meminta apakah cgroup dibekukan karena status pembekuannya sendiri.

Tidak

Tidak tersedia

freezer.parent_freezing

Meminta apakah cgroup dibekukan karena leluhurnya dibekukan.

Tidak

Tidak tersedia

ioasids

Antarmuka cgroup v1 dan antarmuka cgroup v2 dari subsistem ioasids adalah sama.

Nama Antarmuka

Tujuan

Antarmuka internal

ioasids.current

Meminta jumlah ioasids yang dialokasikan ke cgroup saat ini.

Ya

ioasids.events

Meminta jumlah peristiwa yang terjadi karena batas atas alokasi ioasids terlampaui.

Ya

ioasids.max

Meminta jumlah total ioasids yang dapat dialokasikan ke cgroup saat ini.

Ya

net_cls dan net_prio

Nama Antarmuka

Tujuan

Antarmuka internal

Antarmuka cgroup v2 yang sesuai

net_cls.classid

Menentukan identitas kelas yang menandai paket jaringan dari cgroup saat ini. Antarmuka ini bekerja dengan qdisc atau iptable.

Tidak

Tidak tersedia

Catatan

Antarmuka yang sesuai telah dihapus dari cgroup v2. Anda dapat menggunakan ebpf untuk menyaring dan membentuk lalu lintas.

net_prio.prioidx

Meminta nilai indeks cgroup saat ini dalam struktur data. Antarmuka ini hanya-baca dan digunakan secara internal oleh kernel.

Tidak

net_prio.ifpriomap

Menentukan nilai prioritas jaringan untuk setiap kontroler antarmuka jaringan (NIC).

Tidak

perf_event

Subsistem perf_event tidak menyediakan antarmuka. Subsistem perf_event diaktifkan secara default untuk cgroup v2 dan memberikan fungsi yang sama dengan subsistem perf_event di cgroup v1.

pids

Antarmuka cgroup v1 dan antarmuka cgroup v2 dari subsistem pids adalah sama.

Nama Antarmuka

Tujuan

Antarmuka internal

pids.max

Menentukan jumlah maksimum tugas dalam sebuah cgroup.

Tidak

pids.current

Meminta jumlah tugas saat ini dalam sebuah cgroup.

Tidak

pids.events

Meminta jumlah peristiwa di mana operasi fork gagal karena jumlah maksimum tugas yang didukung tercapai. Library fsnotify didukung untuk memberikan notifikasi sistem file tentang peristiwa-peristiwa tersebut.

Tidak

rdma

Antarmuka cgroup v1 dan antarmuka cgroup v2 dari subsistem rdma adalah sama.

Nama Antarmuka

Tujuan

Antarmuka internal

rdma.max

Menentukan batas atas penggunaan sumber daya Remote Direct Memory Access (RDMA) adapter.

Tidak

rdma.current

Meminta penggunaan sumber daya RDMA adapter.

Tidak