OS-Augmented Oversubscription of Opportunistic Memory with a User-Assisted OOM Killer

OS-Augmented Oversubscription of Opportunistic Memory with a User-Assisted OOM Killer
复制标题

DOI:
10.1145/3361525.3361534
复制
发表时间:
2019-12
期刊:
Proceedings of the 20th International Middleware Conference
影响因子:
--
通讯作者:
Wei Chen;Aidi Pi;Shaoqi Wang;Xiaobo Zhou
Wei Chen;Aidi Pi;Shaoqi Wang;Xiaobo Zhou
中科院分区:
其他
文献类型:
--
作者:
Wei Chen;Aidi Pi;Shaoqi Wang;Xiaobo Zhou

文献摘要

相似文献

通过超额订阅来利用机会内存是提高集群利用率和吞吐量的一种有吸引力的方法。在本文中,我们发现内存超额订阅的有效性取决于内存不足(OOM)杀手是否能够及时杀死超额订阅的任务,以避免内存压力下出现严重的内存抖动。然而,现代集群调度器中当前的方法实际上无法释放机会内存的力量,因为它们的用户空间 OOM 杀手无法及时传递任务终止信号来终止超额订阅的任务。我们的实验观察到,用户空间 OOM 杀手无法做到这一点,因为缺乏操作系统的内存压力知识,而内核空间 Linux OOM 杀手则过于保守,无法缓解内存压力。在本文中,我们在内核空间设计了一个用户辅助的 OOM 杀手(即 UA 杀手),这是一种用于准确的抖动检测和敏捷任务终止的操作系统增强。为了识别抖动任务,UA Killer 采用了一种新颖的机制:约束抖动。在 UA Killer 上,我们开发了 Charon,一个集群调度程序,用于以按需方式超额订阅机会内存。我们在 Mercury 上实现了 Charon,这是一个最先进的机会集群调度程序。在 26 节点集群中使用 Google 跟踪进行的大量实验表明,Charon 可以:(1) 实现敏捷的任务终止,(2) 在优先考虑生产作业的同时,将尽力而为作业吞吐量比 Mercury 提高 3.5 倍,(3) 将生产作业的第 90 个作业完成时间比 Kubernetes 机会调度器提高 62%。
Exploiting opportunistic memory by oversubscription is an appealing approach to improving cluster utilization and throughput. In this paper, we find the efficacy of memory oversubscription depends on whether or not the oversubscribed tasks can be killed by an OutOf Memory (OOM) killer in a timely manner to avoid significant memory thrashing upon memory pressure. However, current approaches in modern cluster schedulers are actually unable to unleash the power of opportunistic memory because their user space OOM killers are unable to timely deliver a task killing signal to terminate the oversubscribed tasks. Our experiments observe that a user space OOM killer fails to do that because of lacking the memory pressure knowledge from OS while the kernel space Linux OOM killer is too conservative to relieve memory pressure. In this paper, we design a user-assisted OOM killer (namely UA killer) in kernel space, an OS augmentation for accurate thrashing detection and agile task killing. To identify a thrashing task, UA killer features a novel mechanism, constraint thrashing. Upon UA killer, we develop Charon, a cluster scheduler for oversubscription of opportunistic memory in an on-demand manner. We implement Charon upon Mercury, a state-of-the-art opportunistic cluster scheduler. Extensive experiments with a Google trace in a 26-node cluster show that Charon can: (1) achieve agile task killing, (2) improve the best-effort job throughput by 3.5X over Mercury while prioritizing the production jobs, and (3) improve the 90th job completion time of production jobs over Kubernetes opportunistic scheduler by 62%.