一、NameSpace
1. 介绍
NameSpace 其实就是一种隔离机制,主要目的是隔离运行在同一个宿主机上的容器,让这些容器之间不能访问彼此的资源。
这种隔离有两个作用:第一可以充分地利用系统的资源,也就是说同一台宿主机上可以运行多个用户的容器;第二是保证了安全性,因为不同的用户之间不能访问对方的资源。
2. 常见的NameSpace 类型
- PID Namespace 负责隔离不同的容器的进程
- Network NameSpace 负责管理网络环境的隔离
- Mount Namespace 管理文件系统的隔离
二、Cgroups
1. 介绍
Cgroups 可以对指定的进程做各种计算资源的限制,比如限制CPU的使用率,内存使用量,IO设备的流量。
Cgroups 通过不同的子系统限制了不同的资源,每个子系统限制一种资源。每个子系统限制资源的方式都是类似的,就是把相关的一组进程分配到一个控制组里,然后通过树结构进行管理,每个控制组都设有自己的资源控制参数。
2. 常用的Cgroups 类型
- CPU子系统 用来限制一个控制组(一组进程)可使用的最大的CPU
- memory 子系统 用来限制一个控制组最大的内存使用量
- pids子系统 用来限制一个控制组里最多可以运行多少个进程
- cpuset子系统 限制一个控制组里的进程可以在哪几个物理CPU上运行
