ACM-TURC 2024 Paper CXL论文阅读笔记整理
问题
随着对容量更大、数据传输速度更快的内存系统的需求不断增长,推动了多插槽机器的使用和通过Compute eXpress Link(CXL)进行内存扩展。然而,在这种多插槽机器上运行的进程在访问物理内存时会遇到带宽和延迟不均匀的问题。尽管在NUMA环境中提出了许多策略,如NUMA感知的数据放置策略[7]、NUMA软件线程调度[5]和NUMA感知数据/线程协同调度[4,16],但由于进程调度和内存访问模式之间的语义差距,这些策略仍然不足。
而且,内存访问的延迟不仅受到NUMA节点之间距离的影响,还受到内存带宽压力的影响,特别是在涉及共同运行工作负载的情况下。如图1所示,随着内存带宽增加,内存访问延迟首先呈线性增加,当内存带宽达到约60%后呈指数级增加[23]。
本文方法
本文提出了Tiresias,一种基于反馈的控制器,通过内存局部性感知的进程调度和差异化的CXL内存带宽分配,分别处理延迟敏感(LC)和尽力而为(BE)应用,来减少NUMA对数据访问延迟的影响。
-
工作负载感知和基于软件的内存带宽管理。定期通过load/store指令测试延迟,延迟高于阈值时判断为带宽争用(BE负载),采用页表无效来限制带宽使用。
-
利用CXL内存来缓解内存带宽争用的内存页面迁移策略。针对BE负载,通过Intel PEBS(基于事件的精确采样)对内存地址采样,将使用频率低的页面迁移到CXL内存。
-
基于页表自复制(PTSR)的本地感知进程调度。将页面放置在页面分配后首先读取/写入此页面的处理器上。若必须跨NUMA访问,则将进程调度到对应CPU上。
通过同时利用本地内存和CXL内存资源,Tiresias展示了显著的资源效率。
总结
针对基于CXL的扩展内存使用,优化其上运行的工作负载性能。本文提出Tiresias,一种基于反馈的控制器,对延迟敏感(LC)和尽力而为(BE)应用分别调度。包括3个技术:(1)工作负载感知和内存带宽管理。定期通过load/store指令测试延迟,检测高延迟负载(BE),采用页表无效来限制带宽使用。(2)利用CXL内存缓解内存带宽争用。针对BE负载,对内存地址采样,将使用频率低的页面迁移到CXL内存。(3)页面和进程调度。将页面放置在分配后首先读/写此页面的处理器上。若进程必须跨NUMA访问,则将进程调度到对应CPU上。