多核服务器性能提升:选择性卸载操作系统功能
立即解锁
发布时间: 2025-08-20 02:13:40 阅读量: 1 订阅数: 4 


并行化桌面搜索索引生成器的设计与实现
### 多核服务器性能提升:选择性卸载操作系统功能
#### 1. 引言
在晶体管资源丰富的时代,处理器将容纳数十到数百个处理核心。鉴于核心数量众多,为专门执行常见代码模式的特殊用途核心分配一些芯片面积可能是有益的,操作系统(OS)就是这样一种常见代码。
将选定的OS系统调用卸载到专门的OS核心有诸多好处。一方面,用户线程无需与OS竞争缓存、CPU和分支预测器资源;另一方面,不同线程的OS调用在共享的OS核心上相互作用,可提高缓存和分支预测器的命中率。此外,在异构芯片多处理器中,OS核心可针对节能操作进行定制。
OS卸载方法虽有很大潜力,但仍需更多工作来充分挖掘其潜力,如了解数据中心的服务器/OS工作负载、评估共同调度的虚拟机的影响等。过去的OS卸载工作主要通过软件进行决策,利用静态离线分析或开发者直觉,这种方式既繁琐又不准确。本文主要关注在同质芯片多处理器(CMP)上通过OS卸载进行性能优化,提出了一种新颖的硬件机制,可用于几乎任何OS/硬件组合。
#### 2. 背景与动机
##### 2.1 历史视角
从传统通用微处理器卸载执行并非新想法。例如,20世纪80年代,浮点硬件常作为协处理器存在;直到最近,DRAM子系统的内存控制器才集成到CPU中;网络数据包处理和图形渲染也可分别委托给专用的以太网控制器和视频卡。如今,在多核中进行卸载可作为常见代码模式(如操作系统)的设计优化。
##### 2.2 基准测试
为研究OS干扰对缓存性能的影响,我们考察了多种工作负载。包括PARSEC、BioBench和SPEC - CPU - 2006套件中的部分基准测试,代表高性能计算(HPC)计算密集型应用;以及Apache 2.2.6、SPECjbb2005和Derby等服务器导向的工作负载。除Apache会自行调整线程数外,服务器基准测试通常每个核心映射两个线程,以允许可能因I/O操作而停滞的工作负载继续推进。所有基准测试在运行到感兴趣区域完成前,都会进行2500万条指令的预热,以吞吐量作为性能指标。
##### 2.3 卸载决策与仪器成本
目前的OS卸载工作主要通过离线分析和开发者直觉来确定通常长时间运行的系统调用,然后手动对这些系统调用进行仪器化,使其调用时能从应用核心迁移到专用OS核心。但这种方法存在诸多缺点:
- 系统调用数量众多,手动选择和仪器化每个可能的OS/硬件配置的候选系统调用非常耗时。
- OS利用率因应用而异,基于分析平均值的卸载决策对许多应用来说可能不是最优的。
此外,仪器化成本也不容忽视。当考虑将短系统调用作为卸载候选时,仪器化的开销会大大增加,其延迟成本从基本实现的几十周期到复杂实现的数百周期不等,即使最终决定不卸载特定的OS调用,也会产生这种开销。
##### 2.4 迁移实现
卸载所需的延迟和操作受迁移实现的影响,迁移实现依赖于硬件和软件能力。除了进程迁移,还有远程过程调用和消息传递接口等替代方案,但本文未考虑这些。我们重点关注保守和激进两种设计点:
- 保守方案基于未修改的Linux 2.6.18内核,线程迁移时间约为5000周期,有提案可将此延迟降低到3000周期以下。
- 激进方案基于Brown和Tullsen提出的技术,假设迁移延迟为100周期,但需要额外的状态机来计算和维护记录。
#### 3. 基于硬件的决策机制
为简化OS开发者的任务并做出高质量的卸载决策,我们提出了一种基于硬件的机制。卸载会导致多种复杂的交互,如减少用户核心的缓存和分支预测器干扰、增加缓存一
0
0
复制全文
相关推荐









