openEuler 24.03 LTS 技术白皮书题。 • cgroup v2 特性:cgroup v2 相比 v1,具有统一的层级结构、更完善的线程模式管理、更安全的子树委派以及更丰富的特性支持。 1)统一层级结构: 简化 cgroup 的层级管理,用户不需要为不同的资源管理配置多个独立的 cgroup 树,降低多个控制器协同工作控制难度。提 供了更一致和简化的接口,使得配置更简单易懂。更高的安全性,避免父子 cgroup 资源竞争:cgroup 新增只有父 cgroup 内部无进程时才能启用子 cgroup 控制器的限制。 2)更完善的线程模式管理: cgroup-v2 引入线程模式(threaded),对可线程化管理的子系统进行限制。线程可以被独立于进程其他线程分配到不同的 cgroup 中,对单个线程的资源使用进行更精细的控制。 3)更安全的子树委派: 通过委派机制允许非特权用户创建和管理自己的 cgroup 层次结构。通 QoS 负载均衡,进一步降低离线业务 QoS 干扰。 • SMT 驱离优先级反转特性:解决混部 SMT 驱离特性的优先级反转问题,减少离线任务对在线任务 QoS 的影响。 • 混部多优先级:允许 cgroup 配置 -2~2 的 cpu.qos_level,即多个优先级,使用 qos_level_weight 设置不同优先级权重,按照 CPU 的使用比例进行资源的划分,并提供唤醒抢占能力。 •0 码力 | 45 页 | 6.18 MB | 1 年前3
Linux command line for you and me Documentation Release 0.1Docs: man:sshd(8) man:sshd_config(5) Main PID: 3673 (sshd) Tasks: 1 (limit: 4915) CGroup: /system.slice/sshd.service └─3673 /usr/sbin/sshd -D Jun 22 18:19:28 kdas-laptop systemd[1]: 10:03:25 UTC; 1 day 3h ago Main PID: 21019 (myserver) Tasks: 2 (limit: 50586) Memory: 9.6M CGroup: /system.slice/myserver.service ├─21019 /usr/bin/sh /usr/sbin/myserver └─21020 nosuid,nodev,seclabel,mode=755) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,releas0 码力 | 124 页 | 510.85 KB | 1 年前3
Linux command line for you and me Documentation Release 0.118:19:28 IST; 1s ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 3673 (sshd) Tasks: 1 (limit: 4915) CGroup: /system.slice/sshd.service 3673 /usr/sbin/sshd -D Jun 22 18:19:28 kdas-laptop systemd[1]: Starting 2022-03-12 10:03:25 UTC; 1 day 3h ago Main PID: 21019 (myserver) Tasks: 2 (limit: 50586) Memory: 9.6M CGroup: /system.slice/myserver.service 21019 /usr/bin/sh /usr/sbin/myserver 21020 python3 -m http.server nosuid,nodev,seclabel,mode=755) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr, ˓→rele0 码力 | 128 页 | 716.99 KB | 1 年前3
Containers and BPF: twagent storynamespaces: cgroup, mount, pid and optionally: ipc, net, user, uts ● cgroup v2 ● ... other usual building blocks ... ● cgroup-bpf programs 2 Vast majority of twagent tasks have one or more cgroup-bpf features only: ○ sysctl access control Let’s look at some of them .. Example of cgroup-bpf programs (bpftool cgroup tree ): cgroup-bpf 3 Task IP assignment (aka IP-per-task) ● Facebook DC network is and UDP is enough Solution: ● Make task use specified IP by a set of BPF_PROG_TYPE_CGROUP_SOCK_ADDR and BPF_CGROUP_SOCK_OPS programs Move TCP/UDP servers to task IP: ● bind(2): ctx.user_ip6 = task_ip0 码力 | 9 页 | 427.42 KB | 1 年前3
Linux Docker MessTechnologies in Docker 可配额/可度量 Control Groups (cgroups) cgroups 实现了对资源的配额和度量。cgroups 提供类似文件的接口,在/cgroup目录下 新建一个文件夹即可新建一个group,在此文件夹中新建task文件,并将pid写入该文件, 即可实现对该进程的资源控制。groups可以限制blkio、cpu、cpuacct、cpuset、devices、 等。 cpu 这个子系统使用调度程序为cgroup任务提供cpu的访问。 cpuacct 产生cgroup任务的cpu资源报告。 cpuset 如果是多核心的cpu,这个子系统会为cgroup任务分配单独的cpu和内存。 devices 允许或拒绝cgroup任务对设备的访问。 freezer 暂停和恢复cgroup任务。 memory 设置每个cgroup的内存限制以及产生内存资源报告。 net_cls net_cls 标记每个网络包以供cgroup方便使用。 ns 名称空间子系统。 Refer to: https://www.kernel.org/doc/Documentation/cgroups/ Technologies in Docker 典型Linux启动运行需要两个FS:bootfs + rootfs bootfs (boot file system) 主要包含bootloader和kernel,0 码力 | 77 页 | 7.40 MB | 1 年前3
Greenplum上云与优化实例的OOM有时很频繁,同时OOM很难提前监控 我们的办法 利用外部脚本监控cgroup中的内存统计 发生内存水位较高时,将实例移入公共 cgroup;同时发出cancel query信号给内核 水位下降时移回实例的cgroup 2016Postgres中国用户大会 Linux Box CGroup backend backend backend CGroup backend backend backend backend 2016Postgres中国用户大会 Linux Box CGroup backend backend backend CGroup backend backend backend CGroup Public CGroup Kill –USR2 2016Postgres中国用户大会 未来规划 满足客户需求! 列存优化 – 某些场景下提高数倍性能 CPU优化0 码力 | 26 页 | 1.13 MB | 1 年前3
腾讯基于 Kubernetes 的企业级容器云实践-罗韩梅type=podsandbox io.kubernetes.container.restartCount改为 annotation.io.kubernetes.container.restartCoun • Cgroup目录结构发生变化,新增Pod层级 平台容灾 应用容灾 数据容灾 企业内部各个集群灰度运营。 可靠 资源管 理 CPU Memory Disk Space Network TX 做 管理,导致在线应用受离线业务影响。 一次现网事故 一个用户需求 可靠 设计目标 ◼在某个cgroup网络繁忙时,能保证其设定配额不会被其他cgroup挤占 ◼在某个cgroup没有用满其配额时,其他cgroup可以自动使用其空闲的部分带宽 ◼在多个cgroup分享其他cgroup的空闲带宽时,优先级高的优先; 优先级相同 时, 配额大的占用多,配额小的占用少 ◼尽量减少为了流控而主动丢包 下图是两个进程都拼命争抢网络带宽时的效果。两个进程的 带宽和时延都得不到任何程度的保证。 ◼队列: 不增加队列, 对每个报文直接在正常代码路径上进行决策 ◼Cgroup区分(标记): 在正常处理流程中,报文查找到目标socket结构之 后,根据socket的owner process来确定cgroup ◼报文决策: 令牌桶 + 共享令牌池 + 显式借令牌 ◼限速方式: ECN标记 + TCP滑窗 + 丢包 可靠 短信 Email0 码力 | 28 页 | 3.92 MB | 1 年前3
微服务容灾治理⽽容器⾥⼜分为 cgroup v1 和 cgroup v2 ,所以总的有三类需要处理: • 虚机(不同云⼚商有不同的叫法,⽐如ECS,EC2等) • 容器cgroupv1 • 容器cgroupv2 这⾥有个特别需要关注的点是:容器是否设置了 cpu limit ,如果没设,就只能⽤可以调度的cpu 个数来计算,⽐如 cgroup v2 ⾥可以读取 ⾥可以读取 /sys/fs/cgroup/cpuset.cpus.effective ⽂ 件。 这⾥详细读取 cgroup 和 /proc 下⽂件的⽅法我就不细述了,详⻅go-zero代码。 3.1.2CPU使⽤率计算⽅法(以 cgroup v2 为例) 3.1.2.1实时CPU使⽤率的计算 • ⽅法⼀ • ⽅法⼆ go-zero使⽤了⽅法⼀,因为我考虑到0 码力 | 13 页 | 1.68 MB | 1 年前3
Cilium v1.11 Documentationkube- proxy), cgroup v2 needs to be enabled by setting the kernel systemd.unified_cgroup_hierarchy=1 parameter. Also, cgroup v1 controllers net_cls and net_prio have to be disabled, or cgroup v1 has to be (e.g. by setting the kernel cgroup_no_v1="all" parameter). This ensures that Kind nodes have their own cgroup namespace, and Cilium can attach BPF programs at the right cgroup hierarchy. To verify this, sudo ls -al /proc/$(docker inspect -f '{{.State.Pid}}' kind- control-plane)/ns/cgroup $ sudo ls -al /proc/self/ns/cgroup See the Pull Request [https://github.com/cilium/cilium/pull/16259] for more details0 码力 | 1373 页 | 19.37 MB | 1 年前3
Cilium v1.10 Documentationreplacement (Kubernetes Without kube- proxy), cgroup v1 controllers net_cls and net_prio have to be disabled, or cgroup v1 has to be disabled (e.g. by setting the kernel cgroup_no_v1="all" parameter). Validate the overlapping BPF cgroup type programs attached to the parent cgroup hierarchy of the kind container nodes. In such cases, either tear down Cilium, or manually detach the overlapping BPF cgroup programs running running in the parent cgroup hierarchy by following the bpftool documentation [https://manpages.ubuntu.com/manpages/focal/man8/bpftool-cgroup.8.html]. For more information, see the Pull Request [https://github0 码力 | 1307 页 | 19.26 MB | 1 年前3
共 185 条
- 1
- 2
- 3
- 4
- 5
- 6
- 19













