namespace cgroup 简介

Cgroups 和 Namespaces 一块使用,被用于创建容器。

Namespace提供了系统资源的隔离,Cgroups允许对这些资源进行细粒度的控制和限制。

Namespace(命名空间)

Namespaces 是一种内核机制。它从进程的视角对资源进行了划分,通过限制进程可以看到的资源从而限制其可以只用的资源。

# 查看系统中的命名空间
lsns
        NS TYPE   NPROCS   PID USER COMMAND
4026531835 cgroup    100  2442 lvgg /lib/systemd/systemd --user
4026531836 pid       102  2442 lvgg /lib/systemd/systemd --user
4026531837 user      103  2442 lvgg /lib/systemd/systemd --user
4026531838 uts       100  2442 lvgg /lib/systemd/systemd --user
4026531839 ipc       100  2442 lvgg /lib/systemd/systemd --user
4026531840 mnt       100  2442 lvgg /lib/systemd/systemd --user
4026532000 net        99  2442 lvgg /lib/systemd/systemd --user
4026532411 pid         1 23340 lvgg /usr/share/browser/browser --type=zygote
4026532413 net         1 23340 lvgg /usr/share/browser/browser --type=zygote

# 查看当前进程的命名空间,可以用于setns系统调用
ls -al /proc/$$/ns

Control groups (控制组)

Cgroups 是用于限制和监测一组进程所使用的系统资源的一种内核机制。通过cgroup类型的文件系统实现。

特性:

  • 资源限制 – 限制进程所使用的系统资源的份额;
  • 比例划分 – 分配不同控制组之间资源使用的比例;
  • 统计 – 在控制组中可以查看系统的资源划分和使用情况;
  • 控制 – 一个控制组中的所有进程状态可以通过一条命令进行切换;
# 查看已挂载的控制组目录
mount | grep cgroup

tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/rdma type cgroup (rw,nosuid,nodev,noexec,relatime,rdma)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)

每个组下有对应的可调节参数。

参考文献

cgroups(7) - Linux manual page

​​​​​​https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/pdf/resource_management_guide/red_hat_enterprise_linux-7-resource_management_guide-en-us.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值