ker核心原理:Namespace与Cgroup详解及应用.pdfVIP

  • 0
  • 0
  • 约2.85千字
  • 约 6页
  • 2026-01-30 发布于北京
  • 举报

ker核心原理:Namespace与Cgroup详解及应用.pdf

背后的内核知识

docker本质上就是宿主机上的一个进程,docker通过namespace实现了资源隔离,通

过cgroup实现了资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作

namespace

namespace的六项隔离

namespace系统调用参数隔离内容

UTSCLONE_NEWUTS主机名与域名

IPCCLONE_NEWIPC信号量、消息队列和共享内存

PIDCLONE_NEWPID进程编号

NETWORKCLONE_NEWNET网络设备、网络栈、端口等

MOUNTCLONE_NEWNS挂载点(文件系统)

USERCLONE_NEWUSER用户和用户组(3.8以后的内核才支持)

实际上,Linux内核实现命名空间的一个主要目的,就是实现轻量级虚拟化(容器)服

务。在同一个命名空间下,进程间可以感受到彼此之间的变化,对外界进程一无所知。

这样就可以让容器中的进程产生错觉,仿佛自己置身于一个独立的系统环境中。命名

空间的API包括clone()、sents()、以及unshare(),还有/proc下的部分文件。

cgroup

cgroup的特点如下:

cgroup的API以一个伪文件系统的实现方式,用户态的程序可以通过文件操作实

现cgroup的组织管理

cgroup的组织管理操作单元可以细粒度到线程级别,另外用户可以创建和销

毁cgroup,从而实现资源再分配和再利用。所有资源管理的功能都以子系统

的方式实现,接口统一。子任务创建之初与其父任务处于同一个cgroup的控

制组。

cgroup四大功能:

资源限制:可以对任务使用的资源总额进行限制优先级分配:通过分配的CPU时间片

数量以及磁盘IO带宽大小,实际上相当于控制了

背后的内核知识

docker本质上就是宿主机上的一个进程,docker通过namespace实现了资源隔离,通

过cgroup实现了资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操

namespace

namespace的六项隔离

namespace系统调用参数隔离内容

UTSCLONE_NEWUTS主机名与域名

IPCCLONE_NEWIPC信号量、消息队列和共享内存

PIDCLONE_NEWPID进程编号

NETWORKCLONE_NEWNET网络设备、网络栈、端口等

MOUNTCLONE_NEWNS挂载点(文件系统)

USERCLONE_NEWUSER用户和用户组(3.8以后的内核才支持)

实际上,Linux内核实现namespace的一个主要目的,就是实现轻量级虚拟化(容器)

服务。在同一个namespace下进程间可以感受到彼此之间的变化,对外界进程一无所

知。这样就可以让容器中进程产生错觉,仿佛自己置身于一个独立的系统环境中

namespace的API包括clone()、sents()、以及unshare()还有/prox下的部分文件

cgroup

cgroup的特点如下:

cgroup的API以一个伪文件系统的实现方式,用户态的程序可以通过文件操作实现

cgroup的组织管理

cgroup的组织管理操作单元可以细粒度到线程级别,另外用户可以创建和销毁

cgroup,从而实现资源再分配和再利用

所有资源管理的功能都以子系统的方式实现,接口统一

子任务创建之初与其父任务处于同一个cgroup的控制组

cgroup四大功能:

资源限制:可以对任务使用的资源总额进行限制

优先级分配:通过分配的CPU时间片数量以及磁盘IO带宽大小,实际上相当于控制了

任务运行优先级

资源统计:可以统计系统的资源

文档评论(0)

1亿VIP精品文档

相关文档