• CGroup Namspace


    CGroup 介绍
    CGroup 是 Control Groups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离
    进程组 (process groups) 所使用的物力资源 (如 cpu memory i/o 等等) 的机制。2007
    年进入 Linux 2.6.24 内核,CGroups 不是全新创造的,它将进程管理从 cpuset 中剥
    离出来,作者是 Google 的 Paul Menage。CGroups 也是 LXC 为实现虚拟化所使用
    的资源管理手段。
    CGroup 功能及组成
    CGroup 是将任意进程进行分组化管理的 Linux 内核功能。CGroup 本身是提供将进程
    进行分组化管理的功能和接口的基础结构,I/O 或内存的分配控制等具体的资源管理
    功能是通过这个功能来实现的。这些具体的资源管理功能称为 CGroup 子系统或控制
    器。CGroup 子系统有控制内存的 Memory 控制器、控制进程调度的 CPU 控制器
    等。运行中的内核可以使用的 Cgroup 子系统由/proc/cgroup 来确认。
    CGroup 提供了一个 CGroup 虚拟文件系统,作为进行分组管理和各子系统设置的用
    户接口。要使用 CGroup,必须挂载 CGroup 文件系统。这时通过挂载选项指定使用
    哪个子系统。
    cgroup的特点如下:
    cgroup的API以一个伪文件系统的实现方式,用户态的程序可以通过文件操作实现
    cgroup的组织管理
    cgroup的组织管理操作单元可以细粒度到线程级别,另外用户可以创建和销毁
    cgroup,从而实现资源再分配和再利用
    所有资源管理的功能都以子系统的方式实现,接口统一
    子任务创建之初与其父任务处于同一个cgroup的控制组
    cgroup四大功能:
    资源限制:可以对任务使用的资源总额进行限制
    优先级分配:通过分配的CPU时间片数量以及磁盘IO带宽大小,实际上相当于控制了
    任务运行优先级
    资源统计:可以统计系统的资源使用量,如CPU时长、内存用量等
    任务控制:cgroup可以对任务执行挂起、恢复等操作
    docker本质上就是宿主机上的一个进程,docker通过namespace实现了资源隔离,通
    过cgroup实现了资源限制,通过写时复制技术(copyonwrite)
    实现了高效的文件操

    cgroup
    背后的内核知识
    实际上,Linux内核实现namespace的一个主要目的,就是实现轻量级虚拟化(容器)
    服务。在同一个namespace下进程间可以感受到彼此之间的变化,对外界进程一无所
    知。这样就可以让容器中进程产生错觉,仿佛自己置身于一个独立的系统环境中
    namespace的API包括clone()、sents()、以及unshare()还有/prox下的部分文件

  • 相关阅读:
    csv与xlsx导出
    行业报告
    How JavaScript works: an overview of the engine, the runtime, and the call stack
    CAS单点登陆/oAuth2授权登陆
    YChaos生成混沌图像
    Why数学图像生成工具
    WHY数学图形可视化工具(开源)
    WHY翻写NEHE与红龙的3D图形程序 [开源]
    四边形密铺平面
    数学图形(1.50)三曲线
  • 原文地址:https://www.cnblogs.com/Csir/p/8320013.html
Copyright © 2020-2023  润新知