《曾敬翔-云服务器内存多级卸载方案.pdf》由会员分享,可在线阅读,更多相关《曾敬翔-云服务器内存多级卸载方案.pdf(20页珍藏版)》请在三个皮匠报告上搜索。
1、云服务器内存多级卸载方案探索曾敬翔 腾讯Linux内核研发工程师内容提纲内容提纲方案背景01业界方案介绍02方案详述及效果03后续规划04服务器内存多级卸载方案探索服务器内存多级卸载方案探索内存热度 服务器在数据中心硬件采购成本中占比最高,达到80%左右,其中CPU、GPU和DRAM是主要成本项采购成本、能耗、电费等 数据中心应用程序对内存的需求持续增长随着数据量和业务复杂度上升,内存需求陡增 应用程序为了提高性能,大都采用内存密集性策略长时间运行或者大量服务并存时会出现很大的内存压力 已用内存中不活跃冷内存占有很大比例比例值根据业务不同会有波动产业背景 内存需求成本不断上升、有效利用率较低服
2、务器内存多级卸载方案探索服务器内存多级卸载方案探索 内存多层级化支持愈趋成熟使用相对低性能但廉价的存储设备给昂贵的DRAM减压使用极少量CPU时间压缩内存,可以大幅度降低成本 SWAP逐渐受重视随着内存压缩技术和高性能存储设备的成熟,SWAP 损耗逐渐可以接受社区早有重视:https:/ ZRAM 为例,整体性能慢于内存,在保证回收精确度的情况下ZRAM可以做到平滑换出技术背景 内存层面降本增效成为可能 日新月异的硬件:CXL等CXL慢于Local NODE 内存但远快于IO与内存压缩换出优先级是最高的,在发生任何换出前优先尝试 demote 到 CXLPromotion/Demotion时通
3、过内存间直接移动的平衡方式,提高性能内容提纲内容提纲方案的背景01业界方案介绍02方案详述及效果03后续规划04服务器内存多级卸载方案探索服务器内存多级卸载方案探索 业界的一些探索方案:Meta-TMO(透明内存卸载)数据采集层:在内核中采集cgroup级别的CPU内存IO的延迟信息,并暴露到用户层;回收策略层:Meta-TMO根据cgroup中进程对内存访问速度减慢的延迟敏感性,自动调整要卸载到后备设备的内存量;均衡回收:在内核回收过程中平衡文件页的refault率和匿名页的swapin率,更均衡回收匿名页;在数百万的服务器上节省了总内存的20%32%;我们全量实现了Meta-TMO所需特性
4、,进行摸底。可以得出和Meta论文相似结果,性能轻微损失,内存大幅降低;业界探索方案服务器内存多级卸载方案探索服务器内存多级卸载方案探索 Meta-TMO(透明内存卸载)方案的一些弊端无法在 root memcg 上进行回收,即当业务不以 memcg 方式进行部署的时候,Meta-TMO 是失效的;回收路径很容易堵塞业务进程,导致对于突发业务无法及时调整从而造成性能颠簸;对页面冷热判断完全基于 LRU,在一些模拟业务场景中(如:Postmark),严重失准;无法支持根据回收目标页面的不同冷热程度换出到不同速度的后备设备上面,即无法做到多级卸载平衡;业界探索方案内容提纲内容提纲方案的背景01业界
5、方案介绍02方案详述及效果03后续规划04服务器内存多级卸载方案探索服务器内存多级卸载方案探索PSI、Tenpai:根据进程对内存访问延迟的敏感性,决定回收的页面数量。DAMON 核心及子模块:扫描出长时间未访问的页面,提供基本扫描框架与全局探测算法,提供 LRU Sort 与 SWAP hint 方法,与内核内存回收系统结合,提供即时可用的页面热度信息。Pageout Tiering 框架:在待回收的页面链表中,根据页面冷热频率(DAMON动态迭代的采样频率)换出到不同速度的后备设备上。SWAP Balancer 模块:每个 SWAP 后备设备维护 LRU 链表,当高级SWAP 设备快满时,
6、demote 冷页到速度更慢的设备上。CXL 支持:在换出回写前,优先使用 CXL Promote/Demote,避免Page Fault、IO等造成的性能损失。核心性能优化:针对内核 MM 核心代码进行了大量调优和优化,部分已经upstream。服务器内存多级卸载方案设计服务器内存多级卸载方案探索服务器内存多级卸载方案探索 PSI 收集整理 Per Cgroup 内存访问延迟信息暴露给用户态。用户态守护进程根据 PSI 决定 Cgroup 中需要内存量。Kernel MM 根据 memory.reclaim 接口指示,发起异步回收。DAMON 主动扫描,协助 LRU 整理,收集热度信息。Pa