全网动态
cxl内存池助力microsoft azure节省数亿美元dram硬件开销-凯发游戏
微软、google、亚马逊等云计算巨头,都在以各种“实例”(instance)和按需付费的方式,向广大客户提供其云端硬件资源。不过通常情况下,这些实例都会受到特定的 cpu 和内存配置的约束 —— 意味着客户智能从预设的几个选项中进行挑选、而无法进一步细分配置。
(图 via semianalisis)
比如每多一个虚拟的 cpu 核心,就会往上添加 2gb 的内存。且在实例开启的过程中,预先分配的 cpu 与内存资源也被单个客户锁定,而无法在全局环境中动态调节。
长期以来,超大规模企业一直在努力思考如何缓和这方面的资源浪费 —— 毕竟许多示例没有充分利用其 dram,导致整个数据中心的使用效率低下。
以 microsoft azure 为例,其测量结果表明 —— 近半虚拟机从未使用超过 50% 的预分配内存资源,这样的浪费是相当惊人的。
随着 cpu 资源的触顶,剩余的内存资源无法物尽其用,微软将这种状态称作内存搁浅(memory stranding)。
更让人感到震惊的是,多达 25% 的 dram 在任何特定时刻都可能被搁置。
为了大幅改善这种情况,microsoft azure 想到了所谓的“内存池”(memory pooling)概念。
旨在允许 cpu 访问其所需的尽可能多的内存、而不占用或搁置不需要那么多 dram 资源的虚拟机。
好消息是,全新的 cxl 缓存一致性协议,已经得到了各大主流硬件提供商的产品支持。
通过采用 cxl 硬件,微软等数据中心运营商有望大幅降低其 dram 成本。
假如最终得到 9~10% 的整体 dram 优化,大型云服务器提供商可轻松介绍数亿美元的内存硬件开销。
此外微软估计,使用 cxl 和内存池技术,将使数据中心的服务器成本降低 4-5% —— 毕竟仅 dram 组件就占比超过了 50% 。
性能方面,microsoft azure 团队对一些使用本地 dram / 内存池的配置进行了基准测试,不过性能损失 / 最佳效果还是取决于具体的应用程序。
一方面,memory pooling 会导致额外的 67-87 ns 延迟,导致某些应用程序的速度变得更慢。
另一方面,20% 左右的应用程序并未受到内存池的性能拖累,但有 23% 的应用程序性能损失不到 5% 。
此外 25% 的应用程序减速超 20%,12% 的应用程序减速超 30% 。
需要指出的是,这只是微软在首批 cxl 硬件上展开的早期测试。展望下一代硬件和新的 cxl 协议规范,memory pooling 还有望带来更好的体验。