暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
system与cgroup.pdf
106
5页
0次
2022-09-29
5墨值下载
systemdcgroup
systemd是系统自带的cgroup管理器, 系统初始化就存在的, cgroups联系紧密,为每一个进程分配
cgroups, 用它管理就行了. 如果设置成cgroupfs就存在2cgroup控制管理器, 实验证明在资源有压力的
情况下,会存在不稳定的情况.cgroupfsdocker自带的)
systemd依赖cgroups
要理解systemdcgroups的关系,我们需要先区分cgroups的两个方面:层级结构(A)和资源控制
B)。首先cgroups是以层级结构组织并标识进程的一种方式,同时它也是在该层级结构上执行资源限
制的一种方式。我们简单的把cgroups的层级结构称为A,把cgroups的资源控制能力称为B。对于
systemd来说,A是必须的,如果没有Asystemd将不能很好的工作。而B是可选的。
Systemd默认挂载的cgroups系统
除了systemd目录外,其他目录都是对应的subsystem
/sys/fs/cgroup/systemd 目录是 systemd 维护的自己使用的非 subsystem cgroups 层级结构。这玩
意儿是 systemd 自己使用的,换句话说就是,并不允许其它的程序动这个目录下的内容。其实
/sys/fs/cgroup/systemd 目录对应的 cgroups 层级结构就是 systemd 用来使用 cgoups feature A
的。
Cgroup 的默认层级
通过将 cgroup 层级系统与 systemd unit 树绑定,systemd 可以把资源管理的设置从进程级别移至应
用程序级别。因此,我们可以使用 systemctl 指令,或者通过修改 systemd unit 的配置文件来管理 unit
相关的资源。
默认情况下,systemd 会自动创建 slice**scope service** unit 的层级(slicescope service
都是 systemd unit 类型,参考《初识 systemd),来为 cgroup 树提供统一的层级结构。
系统中运行的所有进程,都是 systemd init 进程的子进程。在资源管控方面,systemd 提供了三种 unit
类型:
service** 一个或一组进程,由 systemd 依据 unit 配置文件启动。service 对指定进程进行封装,这
样进程可以作为一个整体被启动或终止。**
scope**:一组外部创建的进程。由进程通过 fork() 函数启动和终止、之后被 systemd 在运行时注册的
进程,scope 会将其封装。例如:用户会话、 容器和虚拟机被认为是 scope**
slice** 一组按层级排列的 unitslice 并不包含进程,但会组建一个层级,并将 scope service
放置其中。真正的进程包含在 scope service 中。在这一被划分层级的树中,每一个 slice 单位的名字
对应通向层级中一个位置的路径。**
我们可以通过 systemd-cgls 命令来查看 cgroups 的层级结构:
servicescope slice unit 被直接映射到 cgroup 树中的对象。当这些 unit 被激活时,它们会直接一
一映射到由 unit 名建立的 cgroup 路径中。例如,cron.service 属于 system.slice,会直接映射到
cgroup system.slice/cron.service/ 中。
注意,所有的用户会话、虚拟机和容器进程会被自动放置在一个单独的 scope 单元中。
默认情况下,系统会创建四种 slice
1. -.slice:根 slice
of 5
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜