关键要点
• 研究了基于CXL内存的热数据检测技术。
• 数据温度应反映存储位置,并通过跟踪应用程序内存访问来识别热数据。
• 应用程序可以通过API控制数据布局。
• 基于Open Compute Project提出的可扩展内存系统(CMS)子组提出了一种热性跟踪扩展到CXL的技术方案。
• 监控分为粗粒度和细粒度两个阶段,用于确定高活动区域并迁移热页面。
使用CXL分层内存增加容量
单一内存范围内有不同的层级,较低层级的性能较差。
数据的“温度”应反映层级的分配位置:
- • 识别应用的工作集,通过追踪应用的内存访问来对数据温度进行分类。
- • 内核级的启发式方法用于根据应用行为适应数据布局。
提供API使应用可以控制数据布局:
- • 包括libnuma、三星的Scalable Memory SDK、SK Hynix的Heterogeneous Memory SDK。
Note:API控制内存数据布局,把经常访问的数据调度到缓存和主存中,从软件侧提高数据访问效率。
操作系统层面的数据放置策略
左侧部分(NUMA平衡):
- • 保持数据靠近调度线程的节点
- • 在数据所在位置调度线程。
- • 基于故障的访问检测。
- • 基于LRU的页面降级(可选)。
右侧部分(分层内存平衡):
- • 将热页迁移到更快的层级。
- • 基于页面故障频率估计页面的“热度”。
- • 使用基于LRU的页面降级将冷数据移动到较慢的层级。
- • 基于TPP工作(TPP: CXL启用分层内存的透明页面放置,引用自Hasan Al Maruf等人在ASPLOS 2023的论文)。
理解分层内存平衡
测试条件:使用Redis运行YCSB工作负载。
- • 服务器和客户端位于同一节点上
- • 配置包括128GB本地DRAM(延迟115ns)和128GB本地CXL内存(延迟245ns)
通过调整内核内存保留来控制CXL内存的使用
- • 工作负载约占用23GB内存
- • 每移除5GB本地DRAM,性能下降约4%-6%,未见性能趋缓迹象
- • 热度监控精度提高后有大幅提升潜力
基于热度的页面提升机制使事务处理速率较常规NUMA(235GB保留)提高约2%
Note:不同负载在本地DRAM和CXL内存的性能(操作数)差异在20-30%。
关于YCSB工作负载
YCSB(Yahoo! Cloud Serving Benchmark)工作负载是一个广泛用于测试和评估数据库性能的基准测试工具,尤其适用于云数据库、NoSQL数据库和分布式存储系统等。YCSB包含多种标准化的工作负载,这些工作负载模拟了实际应用中的不同数据访问模式,以测试系统在不同负载下的表现,例如读写性能、延迟和吞吐量等。
内存效率检测存在的问题
在处理器端的采样并不完美:
- • 基于页面故障的跟踪开销高。
- • 基于性能计数器(PEBS/IBS)的跟踪无法捕捉到所有内存访问:
- • 缓存流量(预读取/写回)未被考虑。
将跟踪内存“温度”的责任分配给内存设备:
开放计算项目(OCP)的可组合内存系统(CMS)子组提出了一个用于CXL的热度跟踪扩展
CMS/OCP是怎么实现的呢?
CMS/OCP 提案
为CXL内存增加一个“热度跟踪”组件
- • 由主机侧配置的内存监控
- • 将“热”页面信息传递给主机
重点在于主机与设备的交互:
- • 没有提供完整的交互规范
- • 设备实现由硬件供应商自行决定
数据流的检测
监控过程分为四个步骤:
- • 粗粒度监控用于识别高活动区域。
- • 在这些区域内进行细粒度监控,以识别出一组“热”页面。
- • 主机侧利用这些信息迁移一个或多个页面。
- • 已迁移的页面将从“热”页面池中移除。
右侧图示:
图示展示了内存的不同区域,颜色表示不同的活动水平。
高活动区域(红色)中的页面被识别为“热”页面,并被迁移到更快的内存(如DRAM)。
迁移完成后,页面从热页面池中移除。
有多少活跃区域才足够?
---基于QEMU的cachebench工作负载的跟踪分析
- • 如果能检测到访问频率最高的页面,则可以用最少的页面提升来达到预期的访问覆盖率。
- • 由于访问可能分布在半连续的页面范围内,因此可以通过较少的监控槽位实现相同的访问覆盖,但会增加迁移的频率。
- • 表明需要多个独立的监控范围才能识别大部分的热点页面。
- • 建议构建一个范围树,通过对完整内存的连续粗粒度监控,选择热点区域并进一步深入监控这些区域。
总结
当CXL内存作为较慢的层级使用时,识别热点页面对于性能至关重要。
基于区域的CXL内存设备上的热点页面跟踪有望在有限资源下提供良好的覆盖率。
然而,也存在其他有前景的方法:
- • Intel® Flat Memory Mode在缓存行粒度上提供硬件管理的分层支持(参考:《Managing Memory Tiers with CXL in Virtualized Environments》, 由Yuhong Zhong等人在OSDI 24发表)。
- • 除了使用区域划分,其他研究表明基于哈希的技术可以用于设备侧识别热点页面(参考:《Toward CXL-Native Memory Tiering via Device-Side Profiling》, 作者Zhe Zhou等人,链接:https://doi.org/10.48550/arXiv.2403.18702)。