Cgroup的实现, 我是不是发现了写书的秘诀

写在前面, 近期发现了 读英文原版资料的重要性, 我在读某本介绍Docker实现的书时, 发现了某些概念实在难以理解, 于是乎Google搜索了一下, 发现了相关原文

.

Cgroup解决了什么问题

我们知道 在云时代, 一台物理机可以是多核 + 大内存的结构, 但是我们的客户可能只需要一核2G的机器, 这时候要对我们的服务器进行隔离, 当然是逻辑上的隔离,
这一点可以借助Docker采用的Cgroup技术.

Cgroup是Linux 2.8 以后提供的一种系统级的 资源控制 接口, 主要对 内存, CPU, PID, 用户信息等多方面都提供了 隔离

要理解Cgroup 我这里抛出3个 keyword
Hierarchies, Cgroup, subsystem

Cgroup的模型

Cgroup的模型和Process的模型不可谓联系不深.

我们常见的控制资源的方式便是以 进程 的级别去控制的

Cgroup的模型也非常像进程的模型

我们的进程是按树的结构来组织的, 这方面的模型可以康康原文
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/resource_management_guide/ch01#sec-How_Control_Groups_Are_Organized

Cgroup Hierarchy subsystem的关系

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/resource_management_guide/sec-relationships_between_subsystems_hierarchies_control_groups_and_tasks

Cgroup在容器里具体怎么管理容器

1.创建带 资源控制的容器
2.创建subsystem实例
3.创建cgroup 并绑定到subsystem对应的cgroup
4.把进程移入cgroup

留个坑~

posted @ 2021-04-09 16:02  Yan_Hao  阅读(99)  评论(0编辑  收藏  举报