Discuss / 编程 / 最基本的隔离就是进程之间看不到彼此,这是由Linux的Cgroup机制实现的

最基本的隔离就是进程之间看不到彼此,这是由Linux的Cgroup机制实现的

Topic source

BarryWang*泉

#1 Created at ... [Delete] [Delete and Lock User]

隔离是cgroup做的 ?  还是 namespace 做的 ?

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

AI:

在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

Reply