在cgroup v1中,我们可以读取memory.max_usage_in_bytes来获取程序运行时的最大内存使用量。但是我在cgroup v2中没有找到类似的功能。cgroup v2可以提供相同的功能吗?或者我们只能通过频繁地阅读memory.current来做到这一点(比如每10ms)?英语不是我的母语请原谅打字错误。
xriantvc1#
在内核树的commit 8 e20 d4 b332660 a32 e842 e20 c34 cfc 3b 3456 bc 6dc(Fri May 13 16:48:57 2022 -0700)中,引入了Cgroup v2的memory.peak接口。memory.peak将等同于版本1中的memory.max_usage_in_bytes,并且将暴露memcg->watermark的值。此值表示自创建cgroup以来为cgroup及其后代记录的最大内存使用量(在非根cgroup中)。
]$ cat memory.peak 13356507136
它已经在提交8 f095 dc 4 e94 f4 e中被反向移植到RHEL 9.3。
1条答案
按热度按时间xriantvc1#
在内核树的commit 8 e20 d4 b332660 a32 e842 e20 c34 cfc 3b 3456 bc 6dc(Fri May 13 16:48:57 2022 -0700)中,引入了Cgroup v2的memory.peak接口。
memory.peak将等同于版本1中的memory.max_usage_in_bytes,并且将暴露memcg->watermark的值。
此值表示自创建cgroup以来为cgroup及其后代记录的最大内存使用量(在非根cgroup中)。
它已经在提交8 f095 dc 4 e94 f4 e中被反向移植到RHEL 9.3。