Linuxでは、Control Groups (cgroups) は、cgroups内のタスク (プロセス) に割り当てられる物理リソース (CPU、メモリ、I/Oリソースなど) を制限、記録、および分離するリソース管理および制限メカニズムを提供します。 親cgroupは、子孫cgroupsのリソース使用率を制御するために使用できます。 cgroup v1とcgroup v2は、cgroupの2つの主要なバージョンであり、設計と使用方法が大きく異なります。 このトピックでは、cgroup v1とcgroup v2の主な違いについて説明します。
一般的なインターフェイスの違い
cgroup v1インターフェイス
インターフェイス名 | 目的 | 社内インターフェース | 対応するcgroup v2インターフェイス |
cgroup.procs | cgroupにタスクを移行するプロセスID (PID) を書き込みます。 | いいえ | cgroup.procs. |
cgroup.clone_children | 値1は、子cgroupsが親cgroupのcpuset構成を継承することを示します。 説明 このインターフェイスはcpusetサブシステムでのみ有効であり、歴史的な理由により共通インターフェイスとして分類されます。 | いいえ | N/A |
cgroup.sane_behavior | 下位互換性を提供するcgroup v2インターフェイスの実験的な機能をサポートします。 | いいえ | N/A |
notify_on_release | 値1は、cgroupが空になった場合にrelease_agentインターフェイスのタスクが実行されることを示します。 説明 これらのインターフェイスはルートcgroupにのみ存在します。 | いいえ | 同様の機能を実装するcgroup.events |
release_agent | いいえ | ||
tasks | スレッドID (TID) を書き込み、スレッドをcgroupに移行します。 | いいえ | cgroup.threads. |
pool_size | cgroupキャッシュプールのサイズを制御します。 cgroupキャッシュプールは、同時実行性の高いシナリオでのcgroupsの作成とバインドを高速化するのに役立ちます。 説明 インターフェイスはcgroup_renameに依存し、cgroupv2では使用できません。 | はい | N/A |
cgroup v2インターフェイス
インターフェイス名 | 目的 | 社内インターフェース | 対応するcgroup v1インターフェース |
cgroup.procs | タスクをcgroupに移行するためのPIDを書き込みます。 | いいえ | cgroup.procs. |
cgroup.type | 文字列 "threaded" を書き込み、cgroupをthreaded cgroupに変更してスレッド粒度コントロールを提供します。 説明 cpu、pids、およびperf_eventスレッドコントローラーのみがサポートされています。 | いいえ | N/A |
cgroup.threads | スレッドをcgroupに移行するためのTIDを書き込みます。 説明 文字列 "threaded" は、cgroup.typeインターフェイスファイルに書き込む必要があります。 | いいえ | タスクを実行します。 |
cgroup. コントローラ | 現在のcgroupで使用可能なすべてのサブシステムを照会します。 | いいえ | N/A |
cgroup.subtree_control | cgroupから子cgroupsへのリソース配分を制御できるサブシステムを指定します。 説明 サブシステムは、cgroup.controllersインターフェイスを使用して照会できます。 | いいえ | N/A |
cgroup.events | 現在のcgroupにアクティブなプロセスが存在するかどうか、および現在のcgroupが凍結されているかどうかを照会します。 fsnotifyを使用してこのインターフェイスをリッスンし、インターフェイスのステータスが変更されているかどうかを確認できます。 説明 このインターフェイスはルートcgroupに存在しません。 | いいえ | 同様の機能を実装するために一緒に使用されるnotify_on_releaseとrelease_agent |
cgroup.max.descendants | 現在のcgroupで許可されている子孫cgroupの最大数を制御します。 | いいえ | N/A |
cgroup.max.depth | 現在のcgroupで許可されている子孫cgroupsの最大深度を制御します。 | いいえ | N/A |
cgroup.stat | 現在のcgroupの下にある子孫cgroupと、Dying (deleted) 状態にある子孫cgroupの数を照会します。 | いいえ | N/A |
cgroup.freeze | cgroup内のタスクをフリーズするかどうかを制御します。 説明 このインターフェイスはルートcgroupに存在しません。 | いいえ | freezerサブシステムのfreezer. state |
cpu.stat | CPU使用率に関する統計を照会します。 | いいえ | N/A |
io. 圧力 | I/Oパフォーマンス、メモリ、およびCPUの圧力ストール情報 (PSI) を照会します。 情報はポーリングすることができる。 詳細については、以下のトピックをご参照ください。 | いいえ | PSI機能を実装できるcpuacctサブシステムのio.pressure、memory.pressure、およびcpu.pressureインターフェイス |
memory.pressure | いいえ | ||
cpu. 圧力 | いいえ |
サブシステムインターフェースの違い
CPU
cgroup v1インターフェイス
インターフェイス名 | 目的 | 社内インターフェース | 対応するcgroup v2インターフェイス |
cpu.shares | cgroup内のタスクに割り当てられるCPUタイムスライスに基づいて、重みを制御します。 デフォルト値: 1024。 | いいえ | 別の単位を使用するcpu.weightおよびcpu.weight.nice |
cpu.idle | 現在のcgroupにアイドルスケジューリングポリシーを使用するかどうかを制御します。 アイドルスケジューリングポリシーは、最小のCPUシェアに基づいてタイムスライスを割り当てます。 最小ランタイムはサポートされなくなり、CPUリソースを非アイドルタスクに簡単に割り当てることができます。 説明 cpu.idle値が1に設定されている場合、cpu.sharesインターフェイスは書き込み不能になり、3にのみ設定されます。 | いいえ | cpu.idle |
cpu.priority | きめ細かいプリエンプティブ優先順位。 プリエンプションは、クロックが中断またはウェイクアップされたときに実行されます。 きめ細かいプリエンプティブ優先度は、優先度の高いタスクが優先度の低いタスクのメモリをプリエンプトできるように、優先度の違いに基づいて変化します。 | はい | cpu.priority |
cpu.cfs_quota_us | 完全公平なスケジューラ (CFS) を使用して制御されるCPUランタイム。 cpu.cfs_quota_usは、CPU. cfs_period_usインターフェイスで定義された期間内のcgroup内のタスクの最大cpuランタイムを指定します。 | いいえ | cpu.max |
cpu.cfs_period_us | いいえ | ||
cpu.cfs_burst_us | cpu.cfs_period_usインターフェイスで定義された期間内にタスクがバーストできる期間。 詳細については、「cgroup v1のCPUバースト機能の有効化」をご参照ください。 | いいえ | cpu.max.burst |
cpu.cfs_init_buffer_us | cgroup内のタスクが開始されたときにバーストできる期間。 | はい | cpu.max.init_buffer |
cpu.stat | CPUランタイムに関する統計情報 (cpu.cfs_period_us期間の数やタスクによって使用されているCPUリソースの数など) を照会します。 | いいえ | cpu.stat |
cpu.rt_runtime_us | リアルタイムCPUランタイムを制御します。 cpu.rt_runtime_usは、cpu.rt_period_us期間内のcgroup内のリアルタイムタスクの最大ランタイムを指定します。 | いいえ | N/A |
cpu.rt_period_us | いいえ | N/A | |
cpu.bvt_warp_ns | グループID属性を制御してcgroupsのIDを変更します。これを使用して、オフラインタスクを区別し、オンラインタスクのCPUのサービス品質 (QoS) を向上させます。 詳細については、「グループID機能」をご参照ください。 | はい | cpu.bvt_warp_ns |
cpu.identity | はい | cpu.identity | |
cpu.ht_stable | 一貫したSMTコンピューティング能力を維持するために同時マルチスレッド (SMT) ピアノイズを生成するかどうかを指定します。 | はい | N/A |
cpu.ht_ratio | SMTピアがアイドル状態のときにクォータを使用して追加のコンピューティングパワーを提供し、一貫したSMTコンピューティングパワーを維持するかどうかを制御します。 | はい | cpu.ht_ratio |
cgroup v2インターフェイス
cgroup v2はcpuacctサブシステムをサポートしなくなりました。 cpuacctサブシステムの特定のインターフェースまたは関連する機能は、cgroup v2のCPUサブシステムによって実装される。
インターフェイス名 | 目的 | 社内インターフェース | 対応するcgroup v1インターフェース |
cpu.weight | cgroup内のタスクに割り当てられるCPUタイムスライスに基づいて、重みを制御します。 デフォルト値:100 | いいえ | 別のユニットを使用するcpu.shares |
cpu.weight.nice | cgroup内のタスクに割り当てられるCPUタイムスライスに基づいて、重みを制御します。 デフォルト値:0 | いいえ | 別のユニットを使用するcpu.shares |
cpu.idle | 現在のcgroupにアイドルスケジューリングポリシーを使用するかどうかを制御します。 アイドルスケジューリングポリシーは、最小のCPUシェアに基づいてタイムスライスを割り当てます。 最小ランタイムはサポートされなくなり、CPUリソースを非アイドルタスクに簡単に割り当てることができます。 説明 cpu.idle値が1の場合、cpu.weightおよびcpu.weight.niceインターフェイスは書き込み不能になり、最小重み0.3が有効になります。 この場合、cpu.weight値は0に丸められます。 | いいえ | cpu.idle |
cpu.priority | きめ細かいプリエンプティブ優先順位。 プリエンプションは、クロックが中断またはウェイクアップされたときに実行されます。 きめ細かいプリエンプティブ優先度は、優先度の高いタスクが優先度の低いタスクのメモリをプリエンプトできるように、優先度の違いに基づいて変化します。 | はい | cpu.priority |
cpu.max | CFSを使用して制御されるCPUランタイム。 cpu.cfs_quota_usは、CPU. cfs_period_us期間内のcgroup内のタスクの最大cpuランタイムを指定します。 | いいえ | cpu.cfs_quota_us, cpu.cfs_period_us |
cpu.max.burst | cpu.maxインターフェイスで定義された期間内にタスクがバーストできる期間。 | いいえ | cpu.max.burst |
cpu.max.init_buffer | cgroup内のタスクが開始されたときにバーストできる期間。 | はい | cpu.cfs_init_buffer_us |
cpu.bvt_warp_ns | グループID属性を制御してcgroupsのIDを変更します。これを使用して、オフラインタスクを区別し、オンラインタスクに対してより優れたCPU QoS保証を提供できます。 | はい | cpu.bvt_warp_ns |
cpu.identity | はい | cpu.identity | |
cpu.sched_cfs_statistics | cgroupのランタイムや、同じレベルまたは異なるレベルのcgroupsの待機時間など、CFSに関する統計を照会します。 説明 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 | キューで待機しているcgroupsのレイテンシを照会します。 wait_latencyインターフェイスはタスクスケジューリングエンティティ (SE) のレイテンシをカウントし、cgroup_wait_latencyインターフェイスはグループ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ピアがアイドル状態のときにクォータを使用して追加のコンピューティングパワーを提供し、一貫したSMTコンピューティングパワーを維持するかどうかを制御します。 説明 このインターフェイスは、コアスケジューリング機能が有効になっている場合にのみ有効になります。 | はい | cpu.ht_ratio |
cpuset
cgroup v1インターフェイス
インターフェイス名 | 目的 | 社内インターフェース | 対応するcgroup v2インターフェイス |
cpuset.cpus | タスクを実行できるCPUを制御します。 説明 このインターフェイスが空の場合、タスクをcgroupにアタッチできません。 | いいえ | cpuset.cpus |
cpuset.mems | cgroup内のタスクに割り当てることができる非均一メモリアクセス (NUMA) ノードを制御します。 説明 このインターフェイスが空の場合、タスクをcgroupにアタッチできません。 | いいえ | cpuset.mems |
cpuset.effective_cpus | タスクが実行されている有効なCPUを照会します。 このインターフェイスの値は、CPUホットプラグイベントの影響を受けます。 | いいえ | cpuset.cpus.effective |
cpuset.effective_mems | 実行中のタスクに割り当てられている有効なNUMAノードを照会します。 このインターフェイスの値は、メモリノードのホットプラグイベントの影響を受けます。 | いいえ | cpuset.mems.effective |
cpuset.cpu_exclusive | どのCPUがcgroupによって排他的に使用され、cgroup内の同じレベルにある他のcpusetによって使用できないかを制御します。 | いいえ | 同様の機能をサポートするcpuset.cpus.partition |
cpuset.mem_exclusive | どのNUMAノードがcgroupによって排他的に使用され、cgroup内の同じレベルにある他のcpuセットでは使用できないかを制御します。 | いいえ | N/A |
cpuset.mem_hardwall | 値1は、cpuセットに接続されているメモリノードからのみメモリをタスクに割り当てることができることを示します。 | いいえ | N/A |
cpuset.sched_load_balance | CPUがcpuset内でロードバランスされるかどうかを制御します。 デフォルトでは、この機能は有効になっています。 | いいえ | N/A |
cpuset.sched_relax_domain_level | スケジューラがタスクを移行してタスクのCPUをロードバランスするときに、CPUを検索する範囲を制御します。 デフォルト値: -1。
| いいえ | N/A |
cpuset.memory_migrate | 非ゼロ値は、タスクがcpuセット内のメモリページを割り当てられ、別のcpuセットに移行された場合、そのメモリページも新しいcpuセットに移行できることを示します。 | いいえ | N/A |
cpuset.memory_pressure | 現在のcpusetのメモリページング圧力を計算します。 | いいえ | N/A |
cpuset.memory_spread_page | 値1は、カーネルがページキャッシュをcpuセットのメモリノードに均等に割り当てることを示します。 | いいえ | N/A |
cpuset.memory_spread_slab | 値1は、カーネルがスラブキャッシュをcpuセットのメモリノードに均等に割り当てることを示します。 | いいえ | N/A |
cpuset.memory_pressure_enabled | 値1は、cpusetのメモリ圧力統計収集が有効になっていることを示します。 | いいえ | N/A |
cgroup v2インターフェイス
インターフェイス名 | 目的 | 社内インターフェース | 対応するcgroup v1インターフェース |
cpuset.cpus | タスクを実行できるCPUを制御します。 説明 このインターフェイスの値が空の場合、親cpusetのCPUが使用されます。 | いいえ | cpuset.cpus |
cpuset.mems | cgroup内のタスクに割り当てることができるNUMAノードを制御します。 説明 このインターフェイスの値が空の場合、親cpusetのNUMAノードが使用されます。 | いいえ | cpuset.mems |
cpuset.cpus.effective | タスクが実行されている有効なCPUを照会します。 このインターフェイスの値は、CPUホットプラグイベントの影響を受けます。 | いいえ | cpuset.effective_cpus |
cpuset.mems.effective | 実行中のタスクに割り当てられている有効なNUMAノードを照会します。 このインターフェイスの値は、メモリノードのホットプラグイベントの影響を受けます。 | いいえ | cpuset.effective_mems |
cpuset.cpus.partition | cpusetのCPUを排他的に使用するかどうかを制御します。 rootがインターフェイスに書き込まれている場合、cpusetのCPUは排他的に使用されます。 | いいえ | 同様の機能を実装するcpuset.cpu_exclusive |
. __DEBUG__.cpuset.cpus. サブパーティション | rootがcpuset. CPUs. partitionインターフェイスに書き込まれるときに排他的に使用されるCPUを照会します。 説明 このインターフェイスは、cgroup_debug機能がカーネルcmdlineで有効になっている場合にのみ使用できます。 | いいえ | N/A |
blkio
cgroup v1インターフェイス
インターフェイス名 | 目的 | 社内インターフェース | 対応するcgroup v2インターフェイス |
blkio.throttle.read_bps_device | cgroupがデバイスから読み取ることができる1秒あたりの最大バイト数を指定します。 例: echo "<major >:< minor> <bps>" > /sys/fs/cgroup/blkio/<cgroup>/blkio.throttle.read_bps_device | いいえ | io.max |
blkio.throttle.write_bps_device | cgroupがデバイスに書き込むことができる1秒あたりの最大バイト数を指定します。 例: echo "<major >:< minor> <bps>" > /sys/fs/cgroup/blkio/<cgroup>/blkio.throttle.write_bps_device | いいえ | io.max |
blkio.throttle.read_iops_device | cgroupがデバイスで実行できる1秒あたりの読み取り操作の最大数を指定します。 例: echo "<major >:< minor> <iops>" > /sys/fs/cgroup/blkio/<cgroup>/blkio.throttle.read_iops_device | いいえ | io.max |
blkio.throttle.write_iops_device | cgroupがデバイスで実行できる1秒あたりの読み取り操作の最大数を指定します。 例: echo "<major >:< minor> <iops>" > /sys/fs/cgroup/blkio/<cgroup>/blkio.throttle.write_iops_device | いいえ | io.max |
blkio.throttle.io_service_bytes | 帯域幅統計を照会します。 このインターフェイスは、すべてのデバイスの読み取り、書き込み、同期、非同期、破棄、および合計帯域幅の統計を収集します。 単位:バイト | いいえ | io.stat |
blkio.throttle.io_service_bytes_recursive | blkio.throttle.io_service_bytesインターフェイスの再帰バージョン。 blkio.throttle.io_service_bytesインターフェースを使用して収集された統計には、子孫cgroupsのデータが含まれます。 | いいえ | N/A |
blkio.throttle.io_serviced | IOPS統計を照会します。 このインターフェイスは、すべてのデバイスの読み取り、書き込み、同期、非同期、破棄、および合計IOPS統計を収集します。 | いいえ | io.stat |
blkio.throttle.io_serviced_recursive | blkio.throttle.io_servicedインターフェイスの再帰バージョン。 blkio.throttle.io_servicedインターフェイスを使用して収集された統計には、子孫cgroupsのデータが含まれます。 | いいえ | N/A |
blkio.throttle.io_service_time | I/O操作の要求ディスパッチと要求完了の間の期間を照会します。これは、平均I/Oレイテンシを測定するために使用されます。 詳細については、「ブロックI/Oスロットリングの監視の強化」をご参照ください。 | はい | io.extstat |
blkio.throttle.io_wait_time | I/O操作がスケジューラーキューで待機する期間を照会します。これは、平均I/Oレイテンシを測定するために使用されます。 詳細については、「ブロックI/Oスロットリングの監視の強化」をご参照ください。 | はい | io.extstat |
blkio.throttle.io_completed | 完了したI/O操作の数を照会します。これは、平均I/Oレイテンシを測定するために使用されます。 詳細については、「ブロックI/Oスロットリングの監視の強化」をご参照ください。 | はい | io.extstat |
blkio.throttle.total_bytes_queued | スロットリングされたI/Oバイト数を照会します。これは、I/Oレイテンシがスロットリングに関連しているかどうかを分析するために使用されます。 詳細については、「ブロックI/Oスロットリングの監視の強化」をご参照ください。 | はい | io.extstat |
blkio.throttle.total_io_queued | スロットリングされたI/O操作の数を照会します。これは、I/Oレイテンシがスロットリングに関連しているかどうかを分析するために使用されます。 詳細については、「ブロックI/Oスロットリングの監視の強化」をご参照ください。 | はい | io.extstat |
blkio.cost.model | blk-iocostコストモデルを指定します。 制御モード (ctrl) は自動またはユーザーに設定できます。 このインターフェイスはルートcgroupにのみ存在します。 例: echo "<major >:< minor> ctrl=user model=linear rbps=<rbps> rseqiops=<rseqiops> randiops=<rrandiops> wbps=<wbps> wseqiops=<wseqiops> wrandiops=<wrandiops>" > /sys/fs/cgroup/blkio/blkio/blkio/blkio 詳細については、「blk-ioscost重みベースのスロットリング機能の設定」をご参照ください。 | はい | io.cost.model |
blkio.cost.qos | blk-iocost機能を制御し、ディスクの輻輳をチェックするためのQoSポリシーを設定します。 このインターフェイスはルートcgroupにのみ存在します。 例: 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-ioscostウェイト調整の設定」をご参照ください。 | はい | io.cost.qos |
blkio.cost.weight | cgroupの重みを指定します。 このインターフェイスは、ルート以外のcgroupsにのみ存在し、次のモードで設定できます。
詳細については、「blk-ioscost重みベースのスロットリング機能の設定」をご参照ください。 | はい | io.cost.weight |
blkio.cost.stat | blk-iocost統計を照会します。 インターフェイスは、ルート以外のcgroupsにのみ存在します。 | はい | N/A |
cgroup v2インターフェイス
インターフェイス名 | 目的 | 社内インターフェース | 対応するcgroup v1インターフェース |
io.max | 読み取りおよび書き込みのスロットリング速度をバイト /秒および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 | I/O操作の統計を照会します。これには、バイト /秒およびIOPSでの読み取り、書き込み、および破棄操作のレートが含まれます。 | いいえ | blkio.throttle.io_service_bytes blkio.throttle.io_serviced |
io.extstat | 待機時間、サービス時間、完了したI/O操作の数、およびスロットレート (byte/sおよびIOPS) などの拡張I/O統計を照会します。 | いいえ | 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コストモデルを指定します。 制御モード (ctrl) は自動またはユーザーに設定できます。 このインターフェイスはルートcgroupにのみ存在します。 例: echo "<major >:< minor> ctrl=user model=linear rbps=<rbps> rseqiops=<rseqiops> randiops=<rrandiops> wbps=<wbps> wseqiops=<wseqiops> wrandiops=<wrandiops>" > /sys/fs/cgroup /.cost.mo 詳細については、「blk-ioscostウェイト調整の設定」をご参照ください。 | いいえ | blkio.cost.model |
io.cost.qos | blk-iocost機能を制御し、ディスクの輻輳をチェックするためのQoSポリシーを設定します。 このインターフェイスはルートcgroupにのみ存在します。 例: 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-ioscostウェイト調整の設定」をご参照ください。 | いいえ | blkio.cost.qos |
io.cost.weight | cgroupの重みを指定します。 このインターフェイスは、ルート以外のcgroupsにのみ存在し、次のモードで設定できます。
詳細については、「blk-ioscostウェイト調整の設定」をご参照ください。 | いいえ | blkio.cost.weight |
メモリ
cgroup v1インターフェイス
インターフェイス名 | 目的 | 社内インターフェース | 対応するcgroup v2インターフェイス |
memory.us age_in_bytes | 現在のメモリ使用量を照会します。 | いいえ | N/A |
memory.max_usage_in_bytes | 最大メモリ使用量を照会します。 | いいえ | N/A |
memory.limit_in_bytes | メモリ使用量のハード上限を指定します。 | いいえ | N/A |
memory.soft_limit_in_bytes | メモリ使用量のソフト下限を指定します。 | いいえ | N/A |
memory.failcnt | メモリ使用量が上限に達した回数を照会します。 | いいえ | N/A |
memory.mglru_batch_size | Multi-Generational Least Recently Used (MGLRU) フレームワークに基づいて、事前に再利用されるメモリのサイズを指定します。 メモリ再利用のバッチ間でCPUを解放する試みがなされる。 | はい | N/A |
memory. mgrru_reclaim_kbytes | MGLRUフレームワークに基づいて事前に再利用されるメモリのサイズを指定します。 | はい | N/A |
memory.wma rk_ratio | memcgバックエンドの非同期再利用機能を制御し、非同期再利用をトリガーするmemcgメモリ透かしを設定します。 単位: memcgメモリ上限のパーセント。 有効値: 0~100。
詳細については、「Memcg backend asynchronous reclim」をご参照ください。 | はい | memory.wma rk_ratio |
memory.wma rk_high | 読み取り専用インターフェイス。
詳細については、「Memcg backend asynchronous reclim」をご参照ください。 | はい | |
memory.wma rk_low | 読み取り専用インターフェイス。
詳細については、「Memcg backend asynchronous reclim」をご参照ください。 | はい | |
memory.wma rk_scale_factor | memory.wma rk_high値とmemory.wma rk_low値の間隔を指定します。 単位: memcgメモリの上限の0.01パーセント。 有効な値: 1 ~ 1000
詳細については、「Memcg backend asynchronous reclim」をご参照ください。 | はい | |
memory.wma rk_min_adj | memcgグローバル最小透かしレーティング機能で使用される要素。 このインターフェイスの値は、全体的な最小透かしに対するパーセンテージでの調整を示します。 有効値: -25 ~ 50。
詳細については、「Memcg global minimum watermark rating」をご参照ください。 | はい | |
memory.force_empty | メモリページを強制的に再利用するかどうかを指定します。 | いいえ | N/A |
memory.us e_hierarchy | 階層統計を収集するかどうかを指定します。 | はい | N/A |
memory.swappiness | vmscanのswappinessパラメーターを指定します。これは、カーネルがスワップパーティションを使用する傾向を制御します。 | いいえ | N/A |
memory.priority | memcgの優先順位を指定します。 このインターフェイスは、ビジネスをソートするための13個のメモリ不足 (OOM) 優先順位を提供します。 有効な値: 0 ~ 12。 値が大きいほど優先度が高いことを示す。 親cgroupの優先順位は、その子孫cgroupsによって継承されません。 デフォルト値:0
| はい | memory.priority |
memory.mo ve_charge_at_immigrate | タスクをcgroups間で移行するときに、タスクの料金をタスクに沿って移動するかどうかを指定します。これは統計的制御ポリシーです。 | いいえ | N/A |
memory.oom_control | OOMエラーが発生したときにOOMキラーをトリガーしてタスクを終了し、OOMステータスに関する通知を生成するかどうかを指定します。 | いいえ | N/A |
memory.oom.group | OOMエラーが発生した場合にmemcg内のすべてのタスクを終了できるOOMグループ機能を制御します。 | はい | memory.oom.group |
memory.pressure_level | メモリ圧力通知を指定します。 | いいえ | N/A |
memory.kmem.limit_in_bytes | カーネルのメモリ使用量のハード制限を指定します。 | いいえ | N/A |
memory.kmem.us age_in_bytes | カーネルのメモリ使用量を照会します。 | いいえ | N/A |
memory.kmem.failcnt | カーネルのメモリ使用量が上限に達した回数を照会します。 | いいえ | N/A |
memory.kmem.max_usage_in_bytes | カーネルの最大メモリ使用量を照会します。 | いいえ | N/A |
memory.kmem.slabinfo | カーネルのスラブメモリ使用量を照会します。 | いいえ | N/A |
memory.kmem.tcp.limit_in_bytes | カーネルのTCPメモリ使用量のハード制限を指定します。 | いいえ | N/A |
memory.kmem.tcp.us age_in_bytes | カーネルのTCPメモリ使用量を照会します。 | いいえ | N/A |
memory.kmem.tcp.failcnt | カーネルのTCPメモリ使用量が上限に達した回数を照会します。 | いいえ | N/A |
memory.kmem.tcp.max_usage_in_bytes | カーネルの最大TCPメモリ使用量を照会します。 | いいえ | N/A |
memory.memsw.us age_in_bytes | メモリ使用量を照会し、メモリ使用量をスワップします。 | いいえ | N/A |
memory.memsw.max_usage_in_byte | メモリとスワップメモリの最大使用量を照会します。 | いいえ | N/A |
memory.memsw.limit_in_bytes | cgroup内のタスクが使用するメモリとスワップメモリの合計使用量の上限を指定します。 | いいえ | N/A |
memory.memsw.failcnt | メモリとスワップメモリの合計使用量が上限に達した回数を照会します。 | いいえ | N/A |
memory.swap.high | cgroupで使用可能なスワップメモリ使用量の上限を指定します。 | はい | memory.swap.high |
memory.swap.events | スワップメモリ使用量が上限に達したときに発生するイベントを照会します。 | はい | memory.swap.events |
memory.min | cgroupが保持しなければならないメモリの最小量を指定します。これはメモリの保証です。 詳細については、「cgroup v1インターフェイスのMemcg QoS機能」をご参照ください。 | はい | memory.min |
memory.low | cgroupが保持できるメモリの下限を指定します。これはメモリのソフト保証です。 詳細については、「cgroup v1インターフェイスのMemcg QoS機能」をご参照ください。 | はい | memory.low |
memory.high | メモリ使用量のスロットル制限を指定します。 詳細については、「cgroup v1インターフェイスのMemcg QoS機能」をご参照ください。 | はい | memory.high |
memory.allow_duptext | /sys/kernel/mm/duptext/enabledパラメーターがコードduptext機能をグローバルに有効にするように設定されている場合、インターフェイスを使用して、特定のmemcg内のタスクのコードduptext機能を有効にするかどうかを制御します。 有効な値: 0と1。 デフォルト値:0
詳細については、「コードduptext機能」をご参照ください。 | はい | memory.allow_duptext |
memory.allow_duptext_refresh | バイナリファイルが生成またはダウンロードされたときに、コードduptext機能をすぐに開始するかどうかを指定します。 コードduptext機能は、PageDirtyまたはPageWritebackの場合には有効になりません。 インターフェイスは非同期タスクモードを使用してタスクを更新しますが、コードduptext機能がPageDirtyまたはPageWritebackのシナリオでは有効になりません。 | はい | memory.allow_duptext_refresh |
memory.duptext_nodes | duptextメモリ割り当てノードを制限します。 | はい | memory.duptext_nodes |
memory.allow_text_unevictable | memcgスニペットがロックされているかどうかを指定します。 | はい | memory.allow_text_unevictable |
memory.text_unevictable_percent | ロックされたmemcgコードスニペットによって使用されるメモリの量とmemcgコードによって使用されるメモリの総量との比率を指定します。 | はい | memory.text_unevictable_percent |
memory.thp_reclaim | 透明な巨大ページ (THP) の回収機能を制御します。 有効な値:
デフォルト値: disable。 詳細については、「THPの再利用」をご参照ください。 | はい | memory.thp_reclaim |
メモリ. thp_reclaim_stat | THP再利用機能のステータスを照会します。 このインタフェースのパラメータ:
上記のパラメーターの値は、node0やnode1など、NUMAノードIDによって左から右に昇順にリストされます。 詳細については、「THPの再利用」をご参照ください。 | はい | メモリ. thp_reclaim_stat |
memory.thp_reclaim_ctrl | THP再利用機能のトリガー方法を指定します。 このインタフェースのパラメータ:
詳細については、「THPの再利用」をご参照ください。 | はい | memory.thp_reclaim_ctrl |
memory.thp_control | memcg THP機能を制御します。 このインターフェイスは、anon、shmem、およびファイルTHPの適用を禁止するために使用できます。 たとえば、オフラインmemcgはTHPを使用できません。 これは、メモリの断片化を防ぐことができない場合でも、THP競合とメモリの浪費を減らすのに役立ちます。 | はい | memory.thp_control |
memory.reclaim_caches | カーネルがmemcgsのキャッシュをプロアクティブに再利用するかどうかを指定します。 例: | はい | memory.reclaim_caches |
memory.pgtable_bind | 現在のノードのページテーブルメモリを強制的に適用するかどうかを指定します。 | はい | memory.pgtable_bind |
memory.pgtable_misplaced | ページメモリがノード間で割り当てられている場合、ページテーブルのページメモリに関する統計を照会します。 | はい | memory.pgtable_misplaced |
memory.oom_offline | クイックOOM機能では、このインターフェイスを使用してオフラインタスクのメモリックをマークできます。 | はい | memory.oom_offline |
memory.async_fork | 以前は高速収束マージ (FCM) として知られていた、memcgs用のAsync-fork機能を制御します。 | はい | 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 | 拡張メモリと余分なメモリに関する統計を照会します。 以下の社内機能に関する統計が収集されます。
詳細については、「Memcg Exstat機能」をご参照ください。 | 自己開発の強化 | memory.exstat |
メモリ. idle_page_stats | memcgのキルドメモリ使用量とcgroupの階層情報に関する統計を照会します。 | はい | メモリ. idle_page_stats |
メモリ. idle_page_stats.local | memcgのkidledメモリ使用量に関する統計を照会します。 | はい | メモリ. idle_page_stats.local |
memory.numa_stat | 匿名、ファイル、ロックされたメモリのNUMA統計を照会します。 | いいえ | memory.numa_stat |
memory.pagecache_limit.enable | ページキャッシュ制限機能を制御します。 詳細については、「ページキャッシュ制限機能」をご参照ください。 | はい | memory.pagecache_limit.enable |
memory.pagecache_limit.size | 制限されたページキャッシュのサイズを指定します。 | はい | memory.pagecache_limit.size |
memory.pagecache_limit.sync | ページキャッシュ制限機能のモード (同期または非同期) を指定します。 | はい | memory.pagecache_limit.sync |
memory.reap_background | ゾンビmemcgがバックエンド非同期方式でmemcgのメモリを刈り取るかどうかを指定します。 | はい | memory.reap_background |
memory.stat | メモリ統計を照会します。 | いいえ | memory.stat |
memory.us e_priority_oom | memcg OOM優先ポリシー機能を制御します。 詳細については、「Memcg OOM priority policy」をご参照ください。 | はい | memory.us e_priority_oom |
memory.us e_priority_swap | cgroupsの優先順位に基づいてメモリを交換するかどうかを指定します。 詳細については、「Memcg OOM priority policy」をご参照ください。 | はい | memory.us e_priority_swap |
cgroup v2インターフェイス
インターフェイス名 | 目的 | 社内インターフェース | 対応するcgroup v1インターフェース |
memory.current | メモリ使用量を照会します。 | いいえ | N/A |
memory.min | cgroupが保持しなければならないメモリの最小量を指定します。これはメモリの保証です。 詳細については、「cgroup v1インターフェイスのMemcg QoS機能」をご参照ください。 | いいえ | memory.min |
memory.low | cgroupが保持できるメモリの下限を指定します。これはメモリのソフト保証です。 詳細については、「cgroup v1インターフェイスのMemcg QoS機能」をご参照ください。 | いいえ | memory.low |
memory.high | メモリ使用量の上限を指定します。 詳細については、「cgroup v1インターフェイスのMemcg QoS機能」をご参照ください。 | いいえ | memory.high |
memory.max | メモリ使用量のスロットル制限を指定します。 | いいえ | memory.max |
memory.swap.current | 使用中のスワップメモリを照会します。 | いいえ | N/A |
memory.swap.high | cgroupで使用可能なスワップメモリ使用量の上限を指定します。 | いいえ | N/A |
memory.swap.max | スワップメモリのハード制限を指定します。 | いいえ | N/A |
memory.swap.events | スワップメモリ使用量が上限に達したときに発生するイベントを照会します。 | いいえ | N/A |
memory.oom.group | OOMグループ機能が有効になっているかどうかを指定します。これにより、OOMエラーが発生した場合にmemcg内のすべてのタスクを強制終了できます。 | いいえ | memory.oom.group |
memory.wma rk_ratio | memcgバックエンドの非同期再利用機能を制御し、非同期再利用をトリガーするmemcgメモリ透かしを設定します。 単位: memcgメモリ上限のパーセント。 有効値: 0~100。
詳細については、「Memcg backend asynchronous reclim」をご参照ください。 | はい | memory.wma rk_ratio |
memory.wma rk_high | 読み取り専用インターフェイス。
詳細については、「Memcg backend asynchronous reclim」をご参照ください。 | はい | memory.wma rk_high |
memory.wma rk_low | 読み取り専用インターフェイス。
詳細については、「Memcg backend asynchronous reclim」をご参照ください。 | はい | memory.wma rk_low |
memory.wma rk_scale_factor | memory.wma rk_high値とmemory.wma rk_low値の間隔を指定します。 単位: memcgメモリの上限の0.01パーセント。 有効な値: 1 ~ 1000
詳細については、「Memcg backend asynchronous reclim」をご参照ください。 | はい | memory.wma rk_scale_factor |
memory.wma rk_min_adj | memcgグローバル最小透かしレーティング機能で使用される要素。 このインターフェイスの値は、全体的な最小透かしに対するパーセンテージでの調整を示します。 有効値: -25 ~ 50。
詳細については、「Memcg global minimum watermark rating」をご参照ください。 | はい | memory.wma rk_min_adj |
memory.priority | memcgの優先順位を指定します。 このインターフェースは、ビジネスをソートするための13のmemcg OOM優先順位を提供します。 有効な値: 0 ~ 12。 値が大きいほど優先度が高いことを示す。 親cgroupの優先順位は、その子孫cgroupsによって継承されません。 デフォルト値:0
詳細については、「Memcg OOM priority policy」をご参照ください。 | はい | memory.priority |
memory.us e_priority_oom | memcg OOM優先ポリシー機能を制御します。 詳細については、「Memcg OOM priority policy」をご参照ください。 | はい | memory.us e_priority_oom |
memory.us e_priority_swap | cgroupsの優先順位に基づいてメモリを交換するかどうかを指定します。 詳細については、「Memcg OOM priority policy」をご参照ください。 | はい | memory.us e_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 | 拡張メモリと余分なメモリに関する統計を照会します。 以下の社内機能に関する統計が収集されます。
詳細については、「Memcg Exstat」をご参照ください。 | はい | memory.exstat |
memory.pagecache_limit.enable | ページキャッシュ制限機能を制御します。 詳細については、「ページキャッシュ制限機能」をご参照ください。 | はい | memory.pagecache_limit.enable |
memory.pagecache_limit.size | 制限されたページキャッシュのサイズを指定します。 詳細については、「ページキャッシュ制限機能」をご参照ください。 | はい | memory.pagecache_limit.size |
memory.pagecache_limit.sync | ページキャッシュ制限機能のモード (同期または非同期) を指定します。 詳細については、「ページキャッシュ制限機能」をご参照ください。 | はい | memory.pagecache_limit.sync |
メモリ. idle_page_stats | 各階層の個々のメモリのキルドメモリに関する統計を照会します。 | はい | メモリ. idle_page_stats |
メモリ. idle_page_stats.local | 個々のmemcgsのキルドメモリに関する統計を照会します。 | はい | メモリ. idle_page_stats.local |
memory.numa_stat | 匿名、ファイル、ロックされたメモリのNUMA統計を照会します。 | はい | memory.numa_stat |
memory.reap_background | ゾンビmemcgがバックエンド非同期方式でmemcgのメモリを刈り取るかどうかを指定します。 | はい | memory.reap_background |
memory.stat | メモリ統計を照会します。 | いいえ | memory.stat |
memory.us e_priority_oom | memcg OOM優先ポリシー機能を制御します。 詳細については、「Memcg OOM priority policy」をご参照ください。 | はい | memory.us e_priority_oom |
cpuacct
インターフェイス名 | 目的 | 社内インターフェース | 対応するcgroup v2インターフェイス |
cpuacct.us年齢 | 使用された合計CPU時間を照会します。 単位: ナノ秒。 | いいえ | 同様のデータを表示するcpu.stat |
cpuacct.us age_user | ユーザーモードで使用されるCPU時間を照会します。 単位: ナノ秒。 | いいえ | |
cpuacct.us age_sys | カーネルモードで使用されるCPU時間を照会します。 単位: ナノ秒。 | いいえ | |
cpuacct.us age_percpu | 各CPUの使用時間を照会します。 単位: ナノ秒。 | いいえ | |
cpuacct.us age_percpu_user | ユーザーモードでの各CPUの使用時間を照会します。 単位: ナノ秒。 | いいえ | |
cpuacct.us age_percpu_sys | カーネルモードでの各CPUの使用時間を照会します。 単位: ナノ秒。 | いいえ | |
cpuacct.us age_all | e cpuacct.us age_percpu_user d cpuacct.usのage_percpu_sysインターフェイスのサマリを照会します。 単位: ナノ秒。 | いいえ | |
cpuacct.stat | ユーザーモードとカーネルモードで使用されるCPU時間を照会します。 単位: tick。 | いいえ | |
cpuacct.proc_stat | CPU時間、平均負荷 (loadavg) 、コンテナレベルでの実行中のタスク数などのデータを照会します。 | はい | |
cpuacct.enable_sli | コンテナレベルでloadavgsをカウントするかどうかを制御します。 | はい | N/A |
cpuacct.sched_cfs_statistics | cgroupのランタイムや、同じレベルまたは異なるレベルのcgroupsの待機時間など、CFSに関する統計を照会します。 | はい | cpu.sched_cfs_statistics |
cpuacct.wait_latency | キューで待機しているタスクのレイテンシを照会します。 | はい | cpu.wait_latency |
cpuacct.cgroup_wait_latency | キューで待機しているcgroupsのレイテンシを照会します。 wait_latencyインターフェイスはタスクSEのレイテンシをカウントし、cgroup_wait_latencyインターフェイスはグループSEのレイテンシをカウントします。 | はい | cpu.cgroup_wait_latency |
cpuacct.block_latency | I/O以外の原因でブロックされたタスクのレイテンシを照会します。 | はい | cpu.block_latency |
cpuacct.ioblock_latency | I/O操作によってブロックされたタスクのレイテンシを照会します。 | はい | cpu.ioblock_latency |
io. 圧力 | I/Oパフォーマンス、メモリ、およびCPUのPSIを照会します。 情報はポーリングすることができる。 詳細については、以下のトピックをご参照ください。 | いいえ | N/A |
memory.pressure | いいえ | ||
cpu. 圧力 | いいえ |
冷凍庫
インターフェイス名 | 目的 | 社内インターフェース | 対応するcgroup v2インターフェイス |
freezer.state | フリーズステータスを制御します。 有効な値: | いいえ | cgroup.freeze |
freezer.self_freezing | cgroupが独自の凍結状態のために凍結されているかどうかを照会します。 | いいえ | N/A |
freezer.parent_freezing | 祖先が凍結されているため、cgroupが凍結されているかどうかを照会します。 | いいえ | N/A |
ioasids
ioasidsサブシステムのcgroup v1インターフェイスとcgroup v2インターフェイスは同じです。
インターフェイス名 | 目的 | 社内インターフェース |
ioasids.current | 現在のcgroupに割り当てられているioasidsの数を照会します。 | はい |
ioasids. イベント | 割り当て可能なioasidsの上限を超えたために発生したイベントの数を照会します。 | はい |
ioasids.max | 現在のcgroupに割り当てることができるioasidsの総数を照会します。 | はい |
net_clsおよびnet_prio
インターフェイス名 | 目的 | 社内インターフェース | 対応するcgroup v2インターフェイス |
net_cls.classid | 現在のcgroupのネットワークパケットにタグを付けるクラス識別子を指定します。 このインターフェイスはqdiscまたはiptableで動作します。 | いいえ | N/A 説明 対応するインタフェースは、cgroup v2から除去される。 ebpfを使用して、トラフィックをフィルタリングおよびシェーピングできます。 |
net_prio.prioidx | データ構造内の現在のcgroupのインデックス値を照会します。 インターフェイスは読み取り専用で、カーネルによって内部的に使用されます。 | いいえ | |
net_prio.ifpriomap | 各ネットワークインターフェイスコントローラー (NIC) のネットワーク優先度の値を指定します。 | いいえ |
perf_イベント
perf_eventサブシステムはインターフェイスを提供しません。 perf_eventサブシステムは、デフォルトでcgroup v2に対して有効になっており、cgroup v1のperf_eventサブシステムと同じ機能を提供します。
pids
pidsサブシステムのcgroup v1インターフェースとcgroup v2インターフェースは同じです。
インターフェイス名 | 目的 | 社内インターフェース |
pids.max | cgroup内のタスクの最大数を指定します。 | いいえ |
pids.current | cgroup内の現在のタスク数を照会します。 | いいえ |
pids. イベント | サポートされているタスクの最大数に達したためにフォーク操作が失敗したイベントの数を照会します。 fsnotifyライブラリは、イベントに関するファイルシステム通知を提供するためにサポートされています。 | いいえ |
rdma
rdmaサブシステムのcgroup v1インターフェイスとcgroup v2インターフェイスは同じです。
インターフェイス名 | 目的 | 社内インターフェース |
rdma.max | リモートダイレクトメモリアクセス (RDMA) アダプタのリソース使用量の上限を指定します。 | いいえ |
rdma.current | RDMAアダプタのリソース使用率を照会します。 | いいえ |