openEuler操作系统核心技术与行业应用实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.5 自适应千核并行调度技术

由于处理器核存在功耗墙等问题,因此单核算力的提升受到限制,通过增加处理器核数来提升系统性能成为趋势。在对称多处理器时代,所有处理器核都是通过内存总线对等地访问内存的,随着处理器核数的不断增加,内存总线带宽成为系统性能的瓶颈,而采用NUMA架构可以解决这个问题。

NUMA架构有效突破了总线带宽瓶颈问题,让处理器核数的进一步增加成为可能。但是随着拥有成百上千核处理器系统的出现,跨NUMA访存时延、同步操作和锁扩展等问题也随之出现,操作系统如何提升并发调度性能面临新的挑战。

千核调度技术是针对千核级的大型NUMA系统提升性能的可扩展性和线性度的一系列技术的总称,主要包括自适应NUMA调度技术、NUMA感知锁技术、增强核隔离技术,这些技术已经被广泛地应用在服务器、云、CT(Comunication Technology,通信技术)、高性能计算等行业,如图2-8所示。

图2-8 千核调度技术架构图

自适应NUMA调度技术,通过访存亲和性感知(包括业务线程之间的亲和性、业务线程与访存的亲和性关系感知)、CPU算力瓶颈监测和内存负载与带宽监测来实现亲和性调度策略,指导线程调度,降低跨NUMA远程访存,提升访存效率和同步原语的执行效率,从而带来性能提升。在分布式存储场景中,通过感知业务线程与访存的亲和关系,动态调整业务线程亲和性,可以明显提升I/O吞吐量;在数据库场景中,通过异步I/O与自适应NUMA调度技术,将离散的I/O请求进行批量处理,消除软RAID(Redundant Arrays of Independent Disks,独立磁盘冗余阵列)的I/O请求瓶颈,可以带来读写性能的大幅提升。

NUMA感知锁机制,是指通过细粒度锁、无锁化技术及改进的NUMA感知锁算法,消除或缓解同步瓶颈,从而提升性能的可扩展性和并发度。进一步地,可以根据系统拓扑,建立异构可扩展的同步原语模型,自动搜索最优架构配置,包括CPU、Cache、NUMA拓扑,以及大小核的非对称多重处理(Asymmetric Multi-Processing,AMP)架构,来决定同步原语的方案。例如,在AMP架构中,由于大小核之间存在算力差距,在锁机制上存在小核拖累大核的情形,因此会导致整体吞吐量降低的问题。要解决这个问题,需要构建大小核锁机制与临界区运行时间的映射关系,并进行动态调整,从而使系统达到最大的吞吐量。

增强核隔离技术是一种通过降低核间干扰,提升业务并行效率的技术。在大服务器集群中,高性能的计算业务通常需要独占CPU核,这是为了避免内核系统常驻任务(如空闲内存扫描)、中断任务等抢占计算业务的CPU核心,干扰和中断用户计算业务的执行,openEuler提供了增强核隔离技术,通过将系统常驻内核的周期性时钟、周期性任务、常驻进程、工作队列等与业务无关的干扰因素全部隔离,提升并行业务的执行效率。