BabelFish: Fusing Address Translations for Containers

BabelFish: Fusing Address Translations for Containers
复制标题

DOI:
10.1109/isca45697.2020.00049
复制
发表时间:
2020-05
期刊:
2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA)
影响因子:
--
通讯作者:
Dimitrios Skarlatos;Umur Darbaz;Bhargava Gopireddy;N. Kim;J. Torrellas
Dimitrios Skarlatos;Umur Darbaz;Bhargava Gopireddy;N. Kim;J. Torrellas
中科院分区:
其他
文献类型:
--
作者:
Dimitrios Skarlatos;Umur Darbaz;Bhargava Gopireddy;N. Kim;J. Torrellas

文献摘要

相似文献

云计算已经开始了从使用虚拟机到使用容器的转变。容器很有吸引力,因为多个容器可以共享一个内核,并且增加的性能开销最小。云提供商利用容器的精益性质,在几个核心上运行数百个容器。此外,容器使无服务器的范例,这导致创建短命processs.In这项工作中,我们确定容器化的环境中创建的页面翻译,广泛复制跨容器中的TLB和页表。结果是页表管理期间的高TLB压力和冗余内核工作。为了弥补这种情况,本文提出了BabelFish,一种新的架构,跨容器共享页翻译在TLB和页表。我们通过模拟一个8核处理器来评估BabelFish,该处理器在一个保守的容器托管环境中运行一组Docker容器。平均而言,在BabelFish下,容器化工作负载中53%的翻译和无服务器工作负载中93%的翻译是共享的。因此,BabelFish将容器化数据服务工作负载的平均延迟和尾部延迟分别降低了11%和18%。它还将容器化计算工作负载的执行时间降低了11%。最后,它将无服务器函数的启动时间减少了8%,执行时间减少了10%-55%。
Cloud computing has begun a transformation from using virtual machines to containers. Containers are attractive because multiple of them can share a single kernel, and add minimal performance overhead. Cloud providers leverage the lean nature of containers to run hundreds of them on a few cores. Furthermore, containers enable the serverless paradigm, which leads to the creation of short-lived processes.In this work, we identify that containerized environments create page translations that are extensively replicated across containers in the TLB and in page tables. The result is high TLB pressure and redundant kernel work during page table management. To remedy this situation, this paper proposes BabelFish, a novel architecture to share page translations across containers in the TLB and in page tables. We evaluate BabelFish with simulations of an 8-core processor running a set of Docker containers in an environment with conservative container co-location. On average, under BabelFish, 53% of the translations in containerized workloads and 93% of the translations in serverless workloads are shared. As a result, BabelFish reduces the mean and tail latency of containerized data-serving workloads by 11% and 18%, respectively. It also lowers the execution time of containerized compute workloads by 11%. Finally, it reduces serverless function bring-up time by 8% and execution time by 10%–55%.