关于 cgroups 的层级解释 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
stevenshuang
V2EX    问与答

关于 cgroups 的层级解释

  •  
  •   stevenshuang 2021-03-07 16:02:57 +08:00 1593 次点击
    这是一个创建于 1681 天前的主题,其中的信息可能已经有所发展或是发生改变。

    求教一个问题,在看《 Docker 核心原理解读》这本书的时候,看到 cgroups 的一些知识,自身没有对 cgroups 的研究,遇到梳理不清楚的知识点了,希望大佬们能给点提示,谢谢了。 meituan 这个是美团技术团队的一篇文章,里面写了 每一个 cgroups 子系统只能被 attach 到一个 cpu 层级结构中。 而在我看的那本书里是这样写的 docker 理解起来感觉使冲突了。 或者说在美团的那篇文章里,一个 cpu 层级结构指的是什么?

    13 条回复    2021-03-12 12:14:46 +08:00
    defunct9
        1
    defunct9  
       2021-03-07 20:00:37 +08:00 via iPhone
    不知道问的是啥问题
    feather12315
        2
    feather12315  
       2021-03-07 20:07:15 +08:00 via Android
    cgroups 具有进程管理+资源管理两个功能,其中资源管理有两种版本,只谈第一种。
    cgroup 把进程组织成树状,init 进程是这棵树的 root 节点。
    对每一类资源管理功能,cgroup 都有一个树,比如 io 、cpu 这两个功能是两棵树。树中的每个子树,其子树的根节点是一系列进程能占用的资源总和。
    因为一个进程只能归属到一个树中的节点,也就是只能作为一个子树的根节点,这就是它所说的 attach 到一个 CPU 层级中
    stevenshuang
        3
    stevenshuang  
    OP
       2021-03-07 22:20:22 +08:00
    @feather12315 您好,非常感谢您的回复,我理解您的意思是:attach 到一个 cpu 层级是指的一个进程在一个 cgroup 层级只能与一个 cgroup 关联,资源受到到这个 cgroup 子树的限制。所以就是这里所说的 cpu 层级指的是每个 cgroup 子树。我这样理解对吗?
    stevenshuang
        4
    stevenshuang  
    OP
       2021-03-07 22:23:38 +08:00
    @defunct9 您好,我主要想问就是“每以个 cgroups 子系统只能 attach 到一个 cpu 层级结构中”这句话无法理解了。
    defunct9
        6
    defunct9  
       2021-03-07 22:49:30 +08:00 via iPhone
    看英文,中文的翻译总是很让人迷惑
    stevenshuang
        7
    stevenshuang  
    OP
       2021-03-07 23:06:31 +08:00
    @defunct9 感谢,我去看看,好好地理解一下
    feather12315
        8
    feather12315  
       2021-03-07 23:38:14 +08:00 via Android
    @stevenshuang #3 没错
    feather12315
        9
    feather12315  
       2021-03-07 23:39:59 +08:00 via Android
    @stevenshuang #3 不是在一个 cgroup 层级只能与一个 cgroup 关联。
    是在一贯 cgroup 管理的资源树中,只能与一个树中的节点关联。这个节点构成的子树所拥有的资源,就是它享有的资源
    stevenshuang
        10
    stevenshuang  
    OP
       2021-03-07 23:52:42 +08:00
    @feather12315 非常感谢。
    julyclyde
        11
    julyclyde  
       2021-03-08 12:43:31 +08:00
    这个涉及到目录树的规划的问题
    默认情况下在 /sys/fs/cgroups/下边是有一些“按资源分类”的目录(比如 cpu,cpuacct 这个,和 memory 这个),你自己定义的如果属于其中一个,则必然不能属于另一个
    所以如果想综合控制资源分配,应该不建在按资源分类的目录下边,而是自建一个带多种资源控制功能的子目录,类似于 systemd 的目录、kubepods 目录这类
    stevenshuang
        12
    stevenshuang  
    OP
       2021-03-09 11:30:29 +08:00
    @julyclyde 感谢,去看了一下 cgroups 那个目录,简单操作了一下,对 cgroups 建立一个知识结构,非常感谢。
    julyclyde
        13
    julyclyde  
       2021-03-12 12:14:46 +08:00
    @stevenshuang 记得给我点金币哦
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5503 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 07:27 PVG 15:27 LAX 00:27 JFK 03:27
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86