多核调度分析
【搜索微信公众号】百万年薪运维工程师手札
多核调度
1、SMP是多核处理器最常见的,主要是将一个计算机上集中一组处理器,各处理器是对等使用系统总线和内存子系统。
根据处理器实际物理属性,CPU可分为超线程和多核
a.超线程SMT: Linux内核分类CONFIG_SCHED_SMT
b.多核MC: Linux内核分类CONFIG_SCHED_MC
2、Linux内核对CPU管理主要是通过bitmap实现,并且定义了四种状态:possible、online、active、present
Linux内核把所有同一个级别的CPU归纳为一个调度组,然后把同一个级别的调度组成一个调度域。
调度域和调度组
Linux内核将同一个级别的CPU归纳为一个调度组,把同一个级别的调度组归纳为一个调度域,处理器有一个基本的调度域,他是硬件线程调度域,向上依次是核调度域、处理器调度域和NUMA节点调度域。
1.处理器拓扑结构:NUMA和SMP
a.核:一个处理器包含多个核,每个核有独立的一级缓存,所有核共享二级缓存
b.硬件线程:也叫做虚拟处理器或逻辑处理器,一个处理器或者核包含多个硬件线程,硬件线程共享一级缓存和二级缓存 (Intel超线程)
2.调度域和调度组
软件看到的处理器是最低成的处理器。Linux内核按照处理器拓扑层次划分为调度域层次,每个调度域包含多个调度组,调度组和调度域关系