日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

首頁 Alibaba Cloud Linux 服務支持 兼容性說明 cgroup v1與cgroup v2的區(qū)別

cgroup v1與cgroup v2的區(qū)別

更新時間: 2024-07-05 18:06:54

在Linux系統(tǒng)中,cgroup(Control Groups)是一種資源管理和限制的機制,用于限制、記錄和隔離進程組使用的物理資源(如CPU、內存、I/O等),通過cgroup,父進程可以控制子進程組的資源使用。cgroup v1和cgroup v2是cgroup機制的兩個主要版本,它們在設計理念和使用方法上存在一些顯著差異。本文介紹cgroup v1與cgroup v2的主要區(qū)別。

通用接口差異

cgroup v1接口

接口名稱

作用

是否自研

對應cgroup v2接口

cgroup.procs

寫入進程PID即可把進程遷移到該cgroup。

cgroup.procs

cgroup.clone_children

如果為1,子cgroup會繼承自己的cpuset的配置。

說明

只對cpuset子系統(tǒng)生效,歷史遺留因素在通用接口里。

不涉及

cgroup.sane_behavior

v2的實驗特性的接口,v2正式發(fā)布后為了向后兼容而存在

不涉及

notify_on_release

如果為1,當前cgroup變空時會執(zhí)行release_agent內的進程。

說明

只在根組存在。

可以通過cgroup.events實現(xiàn)類似功能

release_agent

tasks

寫入線程tid即可把線程遷移到該cgroup。

cgroup.threads

pool_size

控制cgroup緩存池的大小,在高并發(fā)場景下可以加速cgroup的創(chuàng)建和綁定。

說明

依賴cgroup_rename,在cgroup v2中暫無法使用。

不涉及

cgroup v2接口

接口名稱

作用

是否自研

對應cgroup v1接口

cgroup.procs

寫入進程PID即可把進程遷移到該cgroup。

cgroup.procs

cgroup.type

寫入threaded可以開啟線程粒度的控制。

說明

只支持CPUpidsperf_event

不涉及

cgroup.threads

寫入線程tid即可把線程遷移到該cgroup。

說明

需要cgroup.type為threaded。

tasks

cgroup.controllers

展示當前cgroup開啟了哪些子系統(tǒng)。

不涉及

cgroup.subtree_control

控制子cgroup開啟哪些子系統(tǒng)。

說明

需要是cgroup.controllers的子系統(tǒng)。

不涉及

cgroup.events

記錄了當前cgroup是否管控進程,以及當前cgroup是否被凍結,可以用fsnotify監(jiān)聽狀態(tài)是否變化。

說明

根組中不存在。

可以通過notify_on_release和 release_agent實現(xiàn)類似功能

cgroup.max.descendants

控制最大子孫cgroup的數(shù)量。

不涉及

cgroup.max.depth

控制子孫cgroup的最大深度。

不涉及

cgroup.stat

展示當前cgroup有多少個子孫cgroup和處于dying狀態(tài)(銷毀中)的子孫cgroup。

不涉及

cgroup.freeze

控制進程凍結。

說明

根組中不存在。

freezer子系統(tǒng)中的freezer.state

cpu.stat

展示CPU使用的統(tǒng)計信息。

不涉及

io.pressure

展示PSI信息,支持poll。更多信息,請參見:

在cgroup v1接口開啟PSI功能后,cpuacct子系統(tǒng)下的io.pressure、memory.pressure、cpu.pressure來實現(xiàn)該功能

memory.pressure

cpu.pressure

子系統(tǒng)接口差異

CPU

cgroup v1接口

接口名稱

作用

是否自研

對應cgroup v2接口

cpu.shares

控制權重,根據(jù)權重占比來分配CPU的時間片,默認值為1024。

cpu.weight,cpu.weight.nice,單位不一樣

cpu.idle

控制當前cgroup組的調度策略類型是否為idle類型,idle類型會根據(jù)最小的CPU share分配時間片,且不再有最小運行時間的保障,更容易把CPU讓給非idle類型的進程。

說明

cpu.idle為1時,cpu.shares不再可寫,cpu.shares值變?yōu)?。

cpu.idle

cpu.priority

細粒度搶占優(yōu)先級,時鐘中斷/喚醒時判斷搶占,根據(jù)優(yōu)先級的差值進行調整,使高優(yōu)先級更容易搶占低優(yōu)先級。

cpu.priority

cpu.cfs_quota_us

cpu cfs帶寬控制,在 cpu.cfs_period_us的周期內,組內的進程最多運行時間為 cpu.cfs_quota_us。

cpu.max

cpu.cfs_period_us

cpu.cfs_burst_us

在cpu.cfs_period_us的周期內,允許進程突發(fā)運行的時間。更多信息,請參見在cgroup v1接口開啟CPU Burst功能

cpu.max.burst

cpu.cfs_init_buffer_us

剛啟動時,允許進程突發(fā)運行的時間。

cpu.max.init_buffer

cpu.stat

展示CPU帶寬控制相關統(tǒng)計信息,例如經歷了多少個period,被throttle了多少次等。

cpu.stat

cpu.rt_runtime_us

cpu rt帶寬控制,對于rt進程,在 cpu.rt_period_us的周期內,組內的進程最多運行的時間為cpu.rt_runtime_us。

不涉及

cpu.rt_period_us

不涉及

cpu.bvt_warp_ns

控制group identity屬性,區(qū)分在離線進程,給在線進程更好的CPU QoS保障。更多信息,請參見Group Identity功能說明

cpu.bvt_warp_ns

cpu.identity

cpu.identity

cpu.ht_stable

控制是否制造SMT對端噪音,用于控制SMT算力穩(wěn)定。

不涉及

cpu.ht_ratio

控制是否因為SMT對端空閑額外計算使用的quota,用于控制SMT算力穩(wěn)定。

cpu.ht_ratio

cgroup v2接口

說明

由于cgroup v2中不再支持cpuacct子系統(tǒng),原cpuacct部分接口或相關功能在CPU子系統(tǒng)下實現(xiàn)。

接口名稱

作用

是否自研

對應cgroup v1接口

cpu.weight

控制權重,根據(jù)權重占比來分配CPU的時間片,默認值為100。

cpu.shares,單位不一樣

cpu.weight.nice

控制權重,根據(jù)權重占比來分配CPU的時間片,默認值為0。

cpu.shares,單位不一樣

cpu.idle

控制當前cgroup組的調度策略類型是否為idle類型,idle類型的會根據(jù)最小的CPU share分配時間片,且不再有最小運行時間的保障,更容易把CPU讓給非idle類型的進程。

說明

cpu.idle 為1時,cpu.weight、cpu.weight.nice不再可寫,變?yōu)樽钚嘀兀?.3),同時cpu.weight會因為取整的原因,讀取的值為0。

cpu.idle

cpu.priority

細粒度搶占優(yōu)先級,時鐘中斷/喚醒時判斷搶占,根據(jù)優(yōu)先級的差值進行放縮,讓高優(yōu)先級更容易搶占低優(yōu)先級。

cpu.priority

cpu.max

CPU cfs帶寬控制,包含兩個值,對應quota和period,在 period內組內進程最多運行quota的時間。

cpu.cfs_quota_us, cpu.cfs_period_us

cpu.max.burst

在cpu.max的period周期內,允許進程突發(fā)運行的時間。

cpu.max.burst

cpu.max.init_buffer

剛啟動時,允許進程突發(fā)運行的時間。

cpu.cfs_init_buffer_us

cpu.bvt_warp_ns

控制group identity屬性,區(qū)分離線進程,給在線進程更好的CPU QoS保障。

cpu.bvt_warp_ns

cpu.identity

cpu.identity

cpu.sched_cfs_statistics

cfs相關數(shù)據(jù)統(tǒng)計,例如運行時間,等待同級/非同級cgroup的時間等。

說明

需要打開 kernel.sched_schedstats。

cpuacct.sched_cfs_statistics

cpu.wait_latency

進程在隊列中等待的延遲分布。

說明

需要打開kernel.sched_schedstats和/proc/cpusli/sched_lat_enabled。

cpuacct.wait_latency

cpu.cgroup_wait_latency

進程組在隊列中等待的延遲分布,與wait_latency的區(qū)別在于,wait_latency統(tǒng)計task se,cgroup_wait_latency統(tǒng)計group se。

說明

需要打開kernel.sched_schedstats和/proc/cpusli/sched_lat_enabled。

cpuacct.cgroup_wait_latency

cpu.block_latency

進程因非I/O原因導致的阻塞的延遲分布。

說明

需要打開kernel.sched_schedstats和/proc/cpusli/sched_lat_enabled。

cpuacct.block_latency

cpu.ioblock_latency

進程因I/O原因導致的阻塞的延遲分布。

說明

需要打開kernel.sched_schedstats和/proc/cpusli/sched_lat_enabled

cpuacct.ioblock_latency

cpu.ht_ratio

控制是否因為SMT對端空閑額外計算使用的quota,用于控制SMT算力穩(wěn)定。

說明

需要開啟core scheduling才會生效。

cpu.ht_ratio

cpuset

cgroup v1接口

接口名稱

作用

是否自研

對應cgroup v2接口

cpuset.cpus

控制進程運行的CPU范圍。

說明

為空時cgroup不允許綁定進程。

cpuset.cpus

cpuset.mems

控制進程分配內存的NUMA節(jié)點范圍。

說明

為空時cgroup不允許綁定進程。

cpuset.mems

cpuset.effective_cpus

展示進程運行具體生效的CPU范圍,受CPU熱插拔影響。

cpuset.cpus.effective

cpuset.effective_mems

展示進程分配內存具體生效的NUMA節(jié)點范圍,受內存熱插拔影響。

cpuset.mems.effective

cpuset.cpu_exclusive

控制獨立使用的CPU范圍,不能與同級其他組的有交集。

可以通過cpuset.cpus.partition實現(xiàn)類似功能

cpuset.mem_exclusive

控制獨立使用的NUMA節(jié)點范圍,不能與同級其他組的有交集。

不涉及

cpuset.mem_hardwall

當設置為1,表示內存只能從cpuset所屬的內存node中分配。

不涉及

cpuset.sched_load_balance

控制是否在cpuset.cpus的范圍內進行新建調度域并負載均衡,默認開啟。

不涉及

cpuset.sched_relax_domain_level

控制負載均衡遷移任務時搜索的范圍,默認值為-1。

  • -1:表示無要求,使用系統(tǒng)默認策略。

  • 0:表示不進行搜索。

  • 1:表示搜索同一個core內的ht。

  • 2:表示搜索同一個package內的core。

  • 3:表示同一個node內的CPU。

  • 4:表示搜索同一個chunk內的node。

  • 5:表示搜索整個系統(tǒng)。

不涉及

cpuset.memory_migrate

當設置為非零值時,它允許在重新配置cpuset時自動遷移已分配的內存頁面。

不涉及

cpuset.memory_pressure

計算當前cpuset的內存換頁壓力。

不涉及

cpuset.memory_spread_page

當設置為1,將該cpuset中進程上下文申請的page cache平均分布到cpuset中的各個節(jié)點。

不涉及

cpuset.memory_spread_slab

當設置位1,將該cpuset中進程上下文申請到的slab對象平均分布到cpuset中的各個內存節(jié)點。

不涉及

cpuset.memory_pressure_enabled

當設置為1,使能cpuset的內存壓力統(tǒng)計。

不涉及

cgroup v2接口

接口名稱

作用

是否自研

對應cgroup v1接口

cpuset.cpus

控制進程運行的CPU范圍。

說明

為空時使用parent的CPU范圍。

cpuset.cpus

cpuset.mems

控制進程分配內存的NUMA節(jié)點范圍。

說明

為空時使用parent的NUMA節(jié)點范圍。

cpuset.mems

cpuset.cpus.effective

展示進程運行具體生效的CPU范圍,受CPU熱插拔影響。

cpuset.effective_cpus

cpuset.mems.effective

展示進程分配內存具體生效的NUMA節(jié)點范圍,受內存熱插拔影響。

cpuset.effective_mems

cpuset.cpus.partition

控制是否獨立使用CPU范圍,設置為root時,cpuset.cpus內的CPU會被獨立使用。

可以通過 cpuset.cpu_exclusive實現(xiàn)類似的功能

.__DEBUG__.cpuset.cpus.subpartitions

展示cpuset.cpus.partition為root的子組獨立使用了哪些CPU。

說明

kernel cmdline 開啟了cgroup_debug才會有這個接口。

不涉及

blkio

cgroup v1接口

接口名稱

作用

是否自研

對應cgroup v2接口

blkio.throttle.read_bps_device

讀bps限流配置接口。

例如:

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

io.max

blkio.throttle.write_bps_device

寫bps限流配置接口。

例如:

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

io.max

blkio.throttle.read_iops_device

讀iops限流配置接口。

例如:

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

io.max

blkio.throttle.write_iops_device

讀iops限流配置接口。

例如:

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

io.max

blkio.throttle.io_service_bytes

帶寬統(tǒng)計接口。

包含所有設備的Read、Write、Sync、Async、Discard、Total等帶寬統(tǒng)計信息,單位字節(jié)。

io.stat

blkio.throttle.io_service_bytes_recursive

帶寬統(tǒng)計接口遞歸版本。

blkio.throttle.io_service_bytes 的遞歸版本,包含子cgroup的統(tǒng)計信息。

不涉及

blkio.throttle.io_serviced

iops統(tǒng)計接口。

包含所有設備的Read、Write、Sync、Async、Discard、Total等帶寬統(tǒng)計信息,單位個。

io.stat

blkio.throttle.io_serviced_recursive

iops統(tǒng)計接口遞歸版本。

blkio.throttle.io_serviced 的遞歸版本,包含子cgroup 的統(tǒng)計。

不涉及

blkio.throttle.io_service_time

io服務時間,從io限流層結束到io完成,用于衡量io平均時延。

更多信息,請參見Block IO限流增強監(jiān)控接口

io.extstat

blkio.throttle.io_wait_time

io等待時間,io在限流層等待的時間,用于衡量io平均時延。

更多信息,請參見Block IO限流增強監(jiān)控接口

io.extstat

blkio.throttle.io_completed

完成io個數(shù),用于衡量io平均時延。

更多信息,請參見Block IO限流增強監(jiān)控接口

io.extstat

blkio.throttle.total_bytes_queued

發(fā)生限流的io字節(jié)統(tǒng)計,用于分析io時延是否與限流有關。

更多信息,請參見Block IO限流增強監(jiān)控接口

io.extstat

blkio.throttle.total_io_queued

發(fā)生限流的io統(tǒng)計,用于分析io時延是否與限流有關。

更多信息,請參見Block IO限流增強監(jiān)控接口

io.extstat

blkio.cost.model

配置blk-iocost成本模型,當前僅支持auto和user兩種。

僅存在于根組,例如:

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

更多信息,請參見配置blk-iocost權重限速

io.cost.model

blkio.cost.qos

開啟blk-iocost功能并配置QoS策略,用于磁盤擁塞狀態(tài)判斷。

僅存在于根組,例如:

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

更多信息,請參見配置blk-iocost權重限速

io.cost.qos

blkio.cost.weight

配置cgroup權重接口。

僅存在于非根組,可支持兩種配置模式:

  • weight:所有設備配置相同權重。

  • major:minor + weight:特定設備配置權重。

更多信息,請參見配置blk-iocost權重限速

io.cost.weight

blkio.cost.stat

blk-iocost統(tǒng)計接口。僅存在于非根組。

不涉及

cgroup v2接口

接口名稱

作用

是否自研

對應cgroup v1接口

io.max

限流配置接口,包含讀寫 bps和iops。例如:

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

blkio.throttle.read_bps_device

blkio.throttle.read_iops_device

blkio.throttle.write_bps_device

blkio.throttle.write_iops_device

io.stat

io統(tǒng)計信息,包含讀/寫/discard io的帶寬和io 個數(shù)。

blkio.throttle.io_service_bytes

blkio.throttle.io_serviced

io.extstat

io擴展統(tǒng)計信息,包含讀寫io的等待時間、服務時間、完成個數(shù)、限流io的字節(jié)和個數(shù)統(tǒng)計。

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

配置blk-iocost成本模型,當前僅支持auto和 user兩種。

僅存在于根組,例如:

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

更多信息,請參見配置blk-iocost權重限速

blkio.cost.model

io.cost.qos

開啟blk-iocost功能并配置QoS策略,用于磁盤擁塞狀態(tài)判斷。

僅存在于根組,例如:

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

更多信息,請參見配置blk-iocost權重限速

blkio.cost.qos

io.cost.weight

配置cgroup權重接口。

僅存在于非根組,可支持兩種配置模式:

  • weight:所有設備配置相同權重。

  • major:minor + weight:特定設備配置權重。

更多信息,請參見配置blk-iocost權重限速

blkio.cost.weight

memory

cgroup v1接口

接口名稱

作用

是否自研

對應cgroup v2接口

memory.usage_in_bytes

展示當前內存使用量。

不涉及

memory.max_usage_in_bytes

展示內存最大使用量。

不涉及

memory.limit_in_bytes

設置內存使用量硬限制。

不涉及

memory.soft_limit_in_bytes

設置內存使用量軟限制。

不涉及

memory.failcnt

展示內存使用達到限制的次數(shù)。

不涉及

memory.mglru_batch_size

基于mglru框架的內存主動回收,設置批處理回收的內存數(shù)量,每批處理內存回收之間會嘗試釋放CPU。

不涉及

memory.mglru_reclaim_kbytes

基于mglru框架的內存主動回收,設置主動回收內存的數(shù)量。

不涉及

memory.wmark_ratio

該接口用于設置是否啟用memcg后臺異步回收功能,以及設置異步回收功能開始工作的memcg內存水位線。單位是相對于memcg limit的百分之幾。取值范圍:0~100。

  • 默認值為0,該值也表示禁用memcg后臺異步回收功能。

  • 取值非0時,表示開啟memcg后臺異步回收功能并設置對應的水位線。

更多信息,請參見Memcg后臺異步回收

memory.wmark_ratio

memory.wmark_high

只讀接口,說明如下:

  • 當memcg內存使用超過該接口的值時,后臺異步回收功能啟動。

  • 該接口的值由memory.limit_in_bytes * memory.wmark_ratio / 100計算獲得。

  • memcg后臺異步回收功能被禁用時,memory.wmark_high默認為一個極大值,從而達到永不觸發(fā)后臺異步回收功能的目的。

  • memcg根組目錄下不存在該接口文件。

更多信息,請參見Memcg后臺異步回收

memory.wmark_low

只讀接口,說明如下:

  • 當memcg內存使用低于該接口的值時,后臺異步回收結束。

  • 該接口的值由memory.wmark_high - memory.limit_in_bytes * memory.wmark_scale_factor / 10000計算得出。

  • memcg根組目錄下不存在該接口文件。

更多信息,請參見Memcg后臺異步回收

memory.wmark_scale_factor

該接口用于控制memory.wmark_high和memory.wmark_low之間的間隔。單位是相對于memcg limit的萬分之幾。取值范圍:1~1000

  • 該接口在創(chuàng)建時,會繼承父組的值(該值為50),該值也是默認值,即memcg limit的千分之五。

  • memcg根組目錄不存在該接口文件。

更多信息,請參見Memcg后臺異步回收

memory.wmark_min_adj

實現(xiàn)memcg全局最低水位線分級功能的接口為memory.wmark_min_adj。

該接口的值,表示基于全局最低水位線(global wmark_min)所作出的調整(adjustment)百分比。取值范圍:-25 ~ 50,取值范圍說明如下:

  • 該接口創(chuàng)建時,繼承父組的值(值為0),即默認值為0。

  • 取值范圍中的負值是基于調整范圍[0, WMARK_MIN]的百分比,其中WMARK_MIN表示global wmark_min的值,例如:memory.wmark_min_adj=-25, memcg WMARK_MIN is "WMARK_MIN + (WMARK_MIN - 0) * (-25%)"

  • 取值范圍中的正值是基于調整范圍[WMARK_MIN, WMARK_LOW]的百分比,其中WMARK_MINWMARK_LOW分別表示global wmark_min和global wmark_low的值。

  • 當偏移后的global wmark_min被觸發(fā)后,會執(zhí)行抑制操作,抑制操作的時間和超出的內存使用為線性比例關系。抑制時間的取值范圍:1ms ~ 1000ms。

更多信息,請參見Memcg全局最低水位線分級

memory.force_empty

觸發(fā)強制頁回收。

不涉及

memory.use_hierarchy

設置層級統(tǒng)計使能。

不涉及

memory.swappiness

設置vmscan時swapiness的參數(shù)。

不涉及

memory.priority

該接口提供13個級別的memcg優(yōu)先級以支持不同重要程度的業(yè)務。取值范圍為0~12,數(shù)值越大表示優(yōu)先級越高。該接口不會繼承,默認值為0。

  • 實現(xiàn)一定程度的內存QoS,此處需要說明的優(yōu)先級值非全局變量,只能在同父cgroup下的兄弟節(jié)點進行比較。

  • 對于優(yōu)先級相等的兄弟節(jié)點來說,會按照組的內存使用量來排序選擇內存使用最大的進行OOM操作。

memory.priority

memory.move_charge_at_immigrate

設置移動時的統(tǒng)計控制策略。

不涉及

memory.oom_control

設置oom時的控制策略。

不涉及

memory.oom.group

OOM group功能,當發(fā)生OOM時,殺死該memcg內的所有進程。

memory.oom.group

memory.pressure_level

設置內存壓力通知。

不涉及

memory.kmem.limit_in_bytes

設置內核內存使用量硬限制。

不涉及

memory.kmem.usage_in_bytes

展示內核內存使用量。

不涉及

memory.kmem.failcnt

展示內核內存使用達到限制的次數(shù)。

不涉及

memory.kmem.max_usage_in_bytes

展示內核內存最大使用量。

不涉及

memory.kmem.slabinfo

展示內核內存slab使用量。

不涉及

memory.kmem.tcp.limit_in_bytes

設置內核tcp內存使用量硬限制。

不涉及

memory.kmem.tcp.usage_in_bytes

展示內核tcp內存使用量。

不涉及

memory.kmem.tcp.failcnt

展示內核tcp內存使用達到限制的次數(shù)。

不涉及

memory.kmem.tcp.max_usage_in_bytes

展示內核tcp內存最大使用量。

不涉及

memory.memsw.usage_in_bytes

展示內存加swap使用量。

不涉及

memory.memsw.max_usage_in_byte

展示內存加swap最大使用量。

不涉及

memory.memsw.limit_in_bytes

設置內存加swap使用量限制。

不涉及

memory.memsw.failcnt

展示內存加swap使用達到限制的次數(shù)。

不涉及

memory.swap.high

設置swap使用量限制。

memory.swap.high

memory.swap.events

觸發(fā)swap使用量達到限制時的事件。

memory.swap.events

memory.min

設置內存使用量硬保證。

更多信息,請參見cgroup v1接口支持memcg QoS功能

memory.min

memory.low

設置內存使用量軟保證。更多信息,請參見cgroup v1接口支持memcg QoS功能

memory.low

memory.high

設置內存使用量限制。更多信息,請參見cgroup v1接口支持memcg QoS功能

memory.high

memory.allow_duptext

在全局開關 (/sys/kernel/mm/duptext/enabled) 打開的前提下,memcg開關用于設置各memcg中的進程是否啟用代碼多副本功能。取值范圍:0~1,默認值為0。

  • 取值為1,表示當前memcg中的進程啟用代碼多副本功能。

  • 取值為0,表示當前memcg中的進程不啟用代碼多副本功能。

更多信息,請參見代碼多副本功能

memory.allow_duptext

memory.allow_duptext_refresh

二進制文件剛生成/下載,立即開始運行。duptext會在PageDirty、PageWriteback等條件不生效。如果該接口判斷出這種情況,通過異步任務的方式再次對duptext會在PageDirty、PageWriteback等條件不生效這種情況做一次刷新。

memory.allow_duptext_refresh

memory.duptext_nodes

用于限制duptext的內存分配節(jié)點。

memory.duptext_nodes

memory.allow_text_unevictable

memcg代碼段鎖定的開關。

memory.allow_text_unevictable

memory.text_unevictable_percent

memcg鎖定代碼段的內存占用比例。

memory.text_unevictable_percent

memory.thp_reclaim

開啟或關閉THP reclaim功能。支持以下配置項:

  • reclaim:開啟THP reclaim功能。

  • swap:預留配置項,目前暫無實際功能。

  • disable:關閉THP reclaim功能。

THP reclaim功能默認為關閉狀態(tài),即接口默認值為disable。

更多信息,請參見THP reclaim功能

memory.thp_reclaim

memory.thp_reclaim_stat

查看THP reclaim功能當前的狀態(tài)。接口內的參數(shù)說明如下:

  • queue_length:當前被THP reclaim管理的透明大頁數(shù)量。

  • split_hugepage:累計拆分的透明大頁數(shù)量。

  • reclaim_subpage:累計回收的全零頁面數(shù)量。

該接口的參數(shù)值按照NUMA node的順序(node0、node1)從左到右排列。

更多信息,請參見THP reclaim功能

memory.thp_reclaim_stat

memory.thp_reclaim_ctrl

控制THP reclaim功能的觸發(fā)機制。目前支持以下配置項:

  • threshold:默認值為16。表示當透明大頁中的全零頁面數(shù)量超過該值時,會觸發(fā)THP reclaim功能。

  • reclaim:用于主動觸發(fā)THP reclaim功能。

更多信息,請參見THP reclaim功能

memory.thp_reclaim_ctrl

memory.thp_control

提供memcg thp控制接口,可以禁止anon/shmem/file thp的申請。

例如不允許離線memcg使用大頁,即使不能防止碎片的產生,但能減少THP的爭搶,以及內存浪費的問題。

memory.thp_control

memory.reclaim_caches

主動回收memcg內的緩存。例如:echo 100M > memory.reclaim_caches

memory.reclaim_caches

memory.pgtable_bind

頁表頁內存是否強制在本節(jié)點申請。

memory.pgtable_bind

memory.pgtable_misplaced

跨節(jié)點分配的頁表頁內存的統(tǒng)計 。

memory.pgtable_misplaced

memory.oom_offline

快速OOM特性中,用戶使用該接口來標記離線任務所在的 memcg。

memory.oom_offline

memory.async_fork

async fork(原名 fcm)功能的memcg開關。

memory.async_fork

memory.direct_compact_latency

memsli功能:直接內存整理的延遲。

memory.direct_compact_latency

memory.direct_reclaim_global_latency

memsli功能:直接全局內存回收的延遲。

memory.direct_reclaim_global_latency

memory.direct_reclaim_memcg_latency

memsli功能:直接memcg內存回收的延遲。

memory.direct_reclaim_memcg_latency

memory.direct_swapin_latency

memsli功能:直接內存換入的延遲。

memory.direct_swapin_latency

memory.direct_swapout_global_latency

memsli功能:直接全局內存換出的延遲。

memory.direct_swapout_global_latency

memory.direct_swapout_memcg_latency

memsli功能:直接memcg內存換出的延遲。

memory.direct_swapout_memcg_latency

memory.exstat

extend/extra內存統(tǒng)計。當前包含4個自研特性的統(tǒng)計:

  • wmark_min_throttled_ms 【分級 min 水線】

  • wmark_reclaim_work_ms 【memcg 異步回收】

  • unevictable_text_size_kb 【代碼段鎖定】

  • pagecache_limit_reclaimed_kb 【page cache 限制】

更多信息,請參見Memcg Exstat功能

自研增強

memory.exstat

memory.idle_page_stats

冷內存:kidled的內存統(tǒng)計數(shù)據(jù)(單memcg + hierarchy)。

memory.idle_page_stats

memory.idle_page_stats.local

冷內存:kidled的內存統(tǒng)計數(shù)據(jù)(單memcg)。

memory.idle_page_stats.local

memory.numa_stat

匿名、文件、鎖定內存的NUMA統(tǒng)計。

memory.numa_stat

memory.pagecache_limit.enable

開啟page cache限制開關。

更多信息,請參見Page Cache限制功能

memory.pagecache_limit.enable

memory.pagecache_limit.size

page cache限制:限制量。

memory.pagecache_limit.size

memory.pagecache_limit.sync

page cache限制:限制方式(同步、異步)。

memory.pagecache_limit.sync

memory.reap_background

zombie memcg reaper:memcg粒度的后臺/異步reap的開關。

memory.reap_background

memory.stat

內存的統(tǒng)計。

memory.stat

memory.use_priority_oom

開啟priority oom開關。

更多信息,請參見Memcg OOM優(yōu)先級策略功能

memory.use_priority_oom

memory.use_priority_swap

開啟priority swap開關。

更多信息,請參見Memcg OOM優(yōu)先級策略功能

memory.use_priority_swap

cgroup v2接口

接口名稱

作用

是否自研

對應cgroup v1接口

memory.current

展示內存使用量。

不涉及

memory.min

設置內存使用量硬保證。

更多信息,請參見cgroup v1接口支持memcg QoS功能

memory.min

memory.low

設置內存使用量軟保證。

更多信息,請參見cgroup v1接口支持memcg QoS功能

memory.low

memory.high

設置內存使用量限制。

更多信息,請參見cgroup v1接口支持memcg QoS功能

memory.high

memory.max

設置內存使用量限制。

memory.max

memory.swap.current

展示swap使用量。

不涉及

memory.swap.high

設置swap使用量限制。

不涉及

memory.swap.max

設置swap使用量硬限制。

不涉及

memory.swap.events

觸發(fā)swap使用量達到限制時的事件。

不涉及

memory.oom.group

OOMgroup功能,當發(fā)生OOM時,殺死該memcg內的所有進程。

memory.oom.group

memory.wmark_ratio

該接口用于設置是否啟用memcg后臺異步回收功能,以及設置異步回收功能開始工作的memcg內存水位線。單位是相對于memcg limit的百分之幾。取值范圍:0~100。

  • 默認值為0,該值也表示禁用memcg后臺異步回收功能。

  • 取值為非0時,表示開啟memcg后臺異步回收功能并設置對應的水位線。

更多信息,請參見Memcg后臺異步回收

memory.wmark_ratio

memory.wmark_high

只讀接口,說明如下:

  • 當memcg內存使用超過該接口的值時,后臺異步回收功能啟動。

  • 該接口的值由memory.limit_in_bytes * memory.wmark_ratio / 100計算獲得。

  • memcg后臺異步回收功能被禁用時,memory.wmark_high默認為一個極大值,從而達到永不觸發(fā)后臺異步回收功能的目的。

  • memcg根組目錄下不存在該接口文件。

更多信息,請參見Memcg后臺異步回收

memory.wmark_high

memory.wmark_low

只讀接口,說明如下:

  • 當memcg內存使用低于該接口的值時,后臺異步回收結束。

  • 該接口的值由memory.wmark_high - memory.limit_in_bytes * memory.wmark_scale_factor / 10000計算得出。

  • memcg根組目錄下不存在該接口文件。

更多信息,請參見Memcg后臺異步回收

memory.wmark_low

memory.wmark_scale_factor

該接口用于控制memory.wmark_high和memory.wmark_low之間的間隔。單位是相對于memcg limit的萬分之幾。取值范圍:1~1000。

  • 該接口在創(chuàng)建時,會繼承父組的值(該值為50),該值也是默認值,即memcg limit的千分之五。

  • memcg根組目錄不存在該接口文件。

更多信息,請參見Memcg后臺異步回收

memory.wmark_scale_factor

memory.wmark_min_adj

實現(xiàn)memcg全局最低水位線分級功能的接口為memory.wmark_min_adj。

該接口的值,表示基于全局最低水位線(global wmark_min)所作出的調整(adjustment)百分比。取值范圍:-25 ~ 50,取值范圍說明如下:

  • 該接口創(chuàng)建時,繼承父組的值(值為0),即默認值為0。

  • 取值范圍中的負值是基于調整范圍[0, WMARK_MIN]的百分比,其中WMARK_MIN表示global wmark_min的值,例如:memory.wmark_min_adj=-25, memcg WMARK_MIN is "WMARK_MIN + (WMARK_MIN - 0) * (-25%)"

  • 取值范圍中的正值是基于調整范圍[WMARK_MIN, WMARK_LOW]的百分比,其中WMARK_MINWMARK_LOW分別表示global wmark_min和global wmark_low的值。

  • 當偏移后的global wmark_min被觸發(fā)后,會執(zhí)行抑制操作,抑制操作的時間和超出的內存使用呈線性比例關系。抑制時間的取值范圍:1ms ~ 1000ms。

更多信息,請參見Memcg全局最低水位線分級

memory.wmark_min_adj

memory.priority

該接口提供13個級別的memcg優(yōu)先級以支持不同重要程度的業(yè)務。取值范圍為0~12,數(shù)值越大表示優(yōu)先級越高。該接口不會繼承,默認值為0。

  • 實現(xiàn)一定程度的內存QoS,此處需要說明的優(yōu)先級值非全局變量,只能在同父cgroup下的兄弟節(jié)點進行比較。

  • 對于優(yōu)先級相等的兄弟節(jié)點來說,會按照組的內存使用量來排序選擇內存使用最大的進行OOM操作。

更多信息,請參見Memcg OOM優(yōu)先級策略功能

memory.priority

memory.use_priority_oom

開啟priority oom開關。

更多信息,請參見Memcg OOM優(yōu)先級策略功能

memory.use_priority_oom

memory.use_priority_swap

開啟priority swap開關。

更多信息,請參見Memcg OOM優(yōu)先級策略功能

memory.use_priority_swap

memory.direct_reclaim_global_latency

memsli功能:直接全局內存回收的延遲。

memory.direct_reclaim_global_latency

memory.direct_reclaim_memcg_latency

memsli功能:直接memcg內存回收的延遲。

memory.direct_reclaim_memcg_latency

memory.direct_compact_latency

memsli功能:直接內存整理的延遲。

memory.direct_compact_latency

memory.direct_swapout_global_latency

memsli功能:直接全局內存換出的延遲。

memory.direct_swapout_global_latency

memory.direct_swapout_memcg_latency

memsli功能:直接memcg內存換出的延遲。

memory.direct_swapout_memcg_latency

memory.direct_swapin_latency

memsli功能:直接內存換入的延遲。

memory.direct_swapin_latency

memory.exstat

extend/extra內存統(tǒng)計。當前包含4個自研特性的統(tǒng)計:

  • wmark_min_throttled_ms 【分級 min 水線】

  • wmark_reclaim_work_ms 【memcg 異步回收】

  • unevictable_text_size_kb 【代碼段鎖定】

  • pagecache_limit_reclaimed_kb 【page cache 限制】

更多信息,請參見Memcg Exstat功能

memory.exstat

memory.pagecache_limit.enable

page cache限制:開關。

更多信息,請參見Page Cache限制功能

memory.pagecache_limit.enable

memory.pagecache_limit.size

page cache限制:限制量。

更多信息,請參見Page Cache限制功能

memory.pagecache_limit.size

memory.pagecache_limit.sync

page cache限制:限制方式(同步、異步)。

更多信息,請參見Page Cache限制功能

memory.pagecache_limit.sync

memory.idle_page_stats

冷內存:kidled的內存統(tǒng)計數(shù)據(jù)(單memcg + hierarchy)

memory.idle_page_stats

memory.idle_page_stats.local

冷內存:kidled 的內存統(tǒng)計數(shù)據(jù)(單memcg)。

memory.idle_page_stats.local

memory.numa_stat

匿名、文件、鎖定內存的NUMA統(tǒng)計。

memory.numa_stat

memory.reap_background

zombie memcg reaper:memcg粒度的后臺/異步reap的開關。

memory.reap_background

memory.stat

內存的統(tǒng)計。

memory.stat

memory.use_priority_oom

開啟priority oom開關。

更多信息,請參見Memcg OOM優(yōu)先級策略功能

memory.use_priority_oom

cpuacct

接口名稱

作用

是否自研

對應cgroup v2接口

cpuacct.usage

使用CPU的總時間,單位是ns。

用cpu.stat展示類似的信息

cpuacct.usage_user

在用戶態(tài)使用的CPU時間,單位是ns。

cpuacct.usage_sys

在內核態(tài)使用的CPU時間,單位是ns。

cpuacct.usage_percpu

每個CPU的使用時間,單位是ns。

cpuacct.usage_percpu_user

在用戶態(tài)每個CPU使用的時間,單位是ns。

cpuacct.usage_percpu_sys

在內核態(tài)每個CPU使用的時間,單位是ns。

cpuacct.usage_all

cpuacct.usage_percpu_user和cpuacct.usage_percpu_sys信息的匯總,單位是ns。

cpuacct.stat

在用戶態(tài)和內核態(tài)使用的CPU時間,單位是tick。

cpuacct.proc_stat

展示容器粒度的CPU時間、loadavg、運行進程數(shù)量等信息。

cpuacct.enable_sli

控制是否統(tǒng)計容器粒度的loadavg。

不涉及

cpuacct.sched_cfs_statistics

cfs相關數(shù)據(jù)統(tǒng)計,例如運行時間,等待同級/非同級cgroup的時間等。

cpu.sched_cfs_statistics

cpuacct.wait_latency

進程在隊列中等待的延遲分布。

cpu.wait_latency

cpuacct.cgroup_wait_latency

進程組在隊列中等待的延遲分布,與wait_latency的區(qū)別在于,wait_latency統(tǒng)計task se,cgroup_wait_latency統(tǒng)計group se。

cpu.cgroup_wait_latency

cpuacct.block_latency

進程被非io原因導致的阻塞的延遲分布。

cpu.block_latency

cpuacct.ioblock_latency

進程被io原因導致的阻塞的延遲分布。

cpu.ioblock_latency

io.pressure

展示PSI信息,支持poll。更多信息,請參見:

不涉及

memory.pressure

cpu.pressure

freezer

接口名稱

作用

是否自研

對應cgroup v2接口

freezer.state

控制凍結狀態(tài),可寫入FROZENTHAWED用于凍結或解凍。

cgroup.freeze

freezer.self_freezing

展示是否因為自身的凍結狀態(tài)而凍結。

不涉及

freezer.parent_freezing

展示是否因為祖先的凍結狀態(tài)而凍結。

不涉及

ioasids

ioasids子系統(tǒng)的cgroup v1接口和cgroup v2接口沒有差別。

接口名稱

作用

是否自研

ioasids.current

當前group已經分配的ioasid的數(shù)量。

ioasids.events

由于超過可分配ioasid的限制而發(fā)生的事件數(shù)量。

ioasids.max

當前group可以分配的總的ioasid數(shù)量。

net_cls/net_prio

接口名稱

作用

是否自研

對應cgroup v2接口

net_cls.classid

配置cgroup當前的class id, 與qdisc或iptable配合使用。

不涉及

說明

cgroup v2中移除了相關的接口, 建議使用ebpf對流量進行過濾和整形。

net_prio.prioidx

只讀, 內核內部使用的, 當前cgroup在數(shù)據(jù)結構中的索引值。

net_prio.ifpriomap

配置每一個網卡對應的prio值。

perf_event

perf_event子系統(tǒng)沒有接口,perf_event在cgroup v2上默認使能,和cgroup v1沒有差別。

pids

pids子系統(tǒng)的cgroup v1接口和cgroup v2接口沒有差別。

接口名稱

作用

是否自研

pids.max

控制進程數(shù)量上限。

pids.current

展示當前進程數(shù)量。

pids.events

展示因為達到進程數(shù)量上限而fork失敗的事件次數(shù),并支持fsnotify。

rdma

rdma子系統(tǒng)的cgroup v1接口和cgroup v2接口沒有差別。

接口名稱

作用

是否自研

rdma.max

控制網卡資源使用限制。

rdma.current

展示網卡資源使用。

上一篇: Alibaba Cloud Linux 3與CentOS 7的區(qū)別 下一篇: Alibaba Cloud Linux 3硬件兼容性列表
阿里云首頁 Alibaba Cloud Linux 相關技術圈