中文

内存随您所用:面向延迟敏感服务的快速内存分配

分布式、并行与集群计算 2021-09-08 v1

摘要

在延迟敏感服务(如键值存储与网页搜索)和尽力而为的批处理作业之间进行共置与内存共享,是提高多租户数据中心系统内存利用率的一种颇具吸引力的方法。然而,我们发现,在多租户系统中,作业共置的多样化目标与 GNU/Linux 系统栈会导致内存压力下延迟敏感服务出现严重的性能下降。我们通过快速内存分配与主动回收来解决延迟敏感服务的内存压力问题。我们发现,内存分配延迟主导了整体查询延迟,尤其在内存压力下更为显著。我们分析了 GNU/Linux 系统栈提供的默认内存管理机制,并指出了其在多租户系统中对延迟敏感服务效率低下的原因。我们提出 Hermes,一种在用户空间中为延迟敏感服务自适应预留内存的快速内存分配机制。它建议 Linux 操作系统主动回收批处理作业的内存。我们在 GNU C Library 中实现了 Hermes。实验结果表明,对于一个微基准测试,Hermes 分别将平均和第 99th99^{th} 百分位内存分配延迟最多降低 54.4% 和 62.4%。对于两个真实世界的延迟敏感服务,Hermes 将平均和第 99th99^{th} 百分位尾部查询延迟最多降低 40.3%。与默认的 Glibc、jemalloc 和 TCMalloc 相比,Hermes 在内存压力下将服务等级目标(Service Level Objective)违规最多降低 84.3%。

关键词

引用

@article{arxiv.2109.02922,
  title  = {Memory at Your Service: Fast Memory Allocation for Latency-critical Services},
  author = {Aidi Pi and Junxian Zhao and Shaoqi Wang and Xiaobo Zhou},
  journal= {arXiv preprint arXiv:2109.02922},
  year   = {2021}
}