Linux进程管理之调度域与调度组

您所在的位置:网站首页 kali查看进程 Linux进程管理之调度域与调度组

Linux进程管理之调度域与调度组

2023-04-04 11:06| 来源: 网络整理| 查看: 265

【推荐阅读】

一文看懂linux内核详解

linux内核内存管理-写时复制

深入了解使用linux查看磁盘io使用情况

调度域

调度域就是CPU拓扑中某一层级里面,与某个逻辑CPU关联(该CPU 称为主权CPU)的所有逻辑CPU的集合;

调度组

某一层级调度域中所包括的下级实体(一个逻辑CPU的集合)。

调度域和调度组的区别:

调度域允许重叠交叉,调度组不允许重叠交叉。一个调度域包含一个或多个调度组,一个调度组从属于一个或多个调度域。同属于一个逻辑CPU的各级调度域通过parent/child指针组织成双向链表,同一级调度域的所有调度组通过next指针形成一个单向链表。一句话概括:从一个主权CPU出发,该CPU在每个拓扑层级拥有一个调度域(每个调度域覆盖一个目标CPU集合),该调度域拥有若干个调度组(每个调度组包含一个目标CPU集合)。

调度域和调度组的设计主要是用于CPU负载均衡。CPU负载均衡的含义是最大化全局性能,使各个CPU的负载维持在一个基本相同的水平。负载均衡的时候必然牵涉到进程迁移(从相对繁忙的逻辑CPU迁移到相对空闲的逻辑CPU),而进程迁移是有代价的,这种代价就是性能损失。逻辑CPU之间共享的资源越少,迁移的代价就越大。也就是说,线程组内的迁移代价最小(共享流水线、高速缓存和内存通道),多核组内的迁移代价次之(共享高速缓存和内存通道),封装组内再次(共享内存通道),而跨NUMA节点的代价通常是很大的。于是,负载均衡时优先考虑低级调度域内部的均衡(在同一级调度域的各个调度组之间比较负载,如果负载相差过大就迁移进程),然后再逐级往上用同样的方式操作每一级调度域,直到最终达到全局的负载均衡。

原文作者:首页 - 内核技术中文网 - 构建全国最权威的内核技术交流分享论坛

原文链接:Linux进程管理之调度域与调度组 - 圈点 - 内核技术中文网 - 构建全国最权威的内核技术交流分享论坛(版权归原文作者所有,侵权留言联系删除)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3