最基本的隔离就是进程之间看不到彼此,这是由Linux的Cgroup机制实现的
Topic sourceAI:
在Linux中,进程隔离主要通过namespace和cgroups两种机制实现。namespace是Linux提供的轻量级虚拟化的隔离方法。它可以隔离PID、网络接口、文件系统、IPC等资源,从而实现进程间的隔离。常见的namespace有:- PID namespace:隔离进程ID,每个namespace里的进程ID可以从1开始
- NET namespace:隔离网络接口、路由表等网络资源
- MNT namespace:隔离文件系统视图
- IPC namespace:隔离POSIX IPC资源
- UTS namespace:隔离主机名和域名cgroups则是Linux内核的一种机制,它将进程分组,并为每个分组设置资源限制和优先级。cgroups可以实现对CPU、内存、磁盘IO等资源的配额和控制。所以,总体来说:- namespace实现不同进程间的资源隔离和虚拟化。它主要用于创建独立的虚拟环境。
- cgroups实现对进程组资源的限制和管理。它着重于对进程的资源控制。两者机制可以结合使用,实现更严格的进程隔离和资源控制。例如,Docker就同时使用了namespace和cgroups来实现容器的隔离与资源限制。所以,回答您的问题:- 进程隔离主要是通过namespace实现的
- cgroups起辅助作用,用于进程资源的管理和限制
- 两者机制结合可以实现更强的进程隔离所以,进程隔离不仅cgroup做的,namespace也发挥非常重要的作用。两者都是实现进程隔离的关键机制。
- 1
BarryWang*泉
隔离是cgroup做的 ? 还是 namespace 做的 ?