开发者社区> 问答> 正文

在cgroup内存核算中,sandbox_cgroup_only=false的含义是什么?

当一个kata容器启动时,相关的过程是:

 - containerd-shim-kata-v2  - qemu  - virtiofsd

我知道containerd-shim-kata-v2和virtiofsd应该放在/sys/fs/cgroup/memory/kata_overhead下。 但qemu只是主机上的一个进程,它应该位于/sys/fs/cgroup/mestory/kubepods或/sys/fs/cgroup/mestory/kata_overhead下。

如果qemu进程在/sys/fs/cgroup/memory/kubepods下,这是否意味着虚拟机开销(例如内核内存)被添加到了pod中?

如果qemu进程在/sys/fs/cgroup/memory/kata_overhead下进行,这是否意味着所有容器工作负载内存的使用都不受限制?

在sandbox_cgroup_only=false的k8s节点中,我只能观察到kata_overhead内存的使用情况:

cat /sys/fs/cgroup/memory/kubepods/pod3a864680-ceaf-4acd-83fd-20a4d542b651/kata_94a6391dde707330a94acb3e684ee7048d085e7b6d9b1feda0cc1151b90606b2/memory.usage_in_bytes

0

cat /sys/fs/cgroup/memory/kubepods/pod3a864680-ceaf-4acd-83fd-20a4d542b651/memory.usage_in_bytes

0

cat /sys/fs/cgroup/memory/kata_overhead/94a6391dde707330a94acb3e684ee7048d085e7b6d9b1feda0cc1151b90606b2/memory.usage_in_bytes

1240653824

原提问者GitHub用户fengyehong 如对项目有进一步反馈,请在 GitHub 提交 issue https://github.com/kata-containers/kata-containers/issues

展开
收起
码字王 2023-05-17 16:15:11 185 0
2 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    在cgroup内存核算中,sandbox_cgroup_only=false的含义是允许在机器上的其他进程(如qemu)被计入容器内存限制。这意味着如果您的kata容器运行在非sandox_cgroup_only配置的节点上,容器的内存限制将包括虚拟机的内存开销。

    对于您提到的问题,如果qemu进程在/sys/fs/cgroup/memory/kubepods下,则虚拟机开销将被添加到pod中,而不是kata_overhead下。如果qemu进程在/sys/fs/cgroup/memory/kata_overhead下进行,则意味着所有容器工作负载内存使用量都不受限制,并且可能会导致超出内存限制的情况。

    根据您提供的输出,只能看到kata_overhead的内存使用情况,而无法看到任何容器的内存使用情况。这可能是因为kata_overhead的内存限制被设置为更高的值,并且未达到限制。您可以尝试运行容器并查看它们的内存使用情况是否被正确计入kata_overhead cgroup中。

    2023-05-18 18:40:42
    赞同 展开评论 打赏
  • 通常开销组没有限制,沙箱cgroup将包含vCPU线程,您可以检查任务文件。

    你可以阅读https://github.com/kata-containers/kata-containers/blob/main/docs/design/host-cgroups.md#sandbox_cgroup_only--有关详细信息,默认设置为false。

    原回答者GitHub用户liubin 如对项目有进一步反馈,请在 GitHub 提交 issue https://github.com/kata-containers/kata-containers/issues

    2023-05-17 16:24:55
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
内存取证与IaaS云平台恶意行 为的安全监控 立即下载
云服务器ECS内存增强型实例re6全新发布 立即下载
低代码开发师(初级)实战教程 立即下载