这篇文章发表在ISCA 2015,其中一作 DAVID LO 2015年毕业于斯坦福大学,是Christos Kozyrakis的学生,毕业之后去了Google的Platforms team,这个工作就是他在Google实习期间做出来的工作。
在数据中心中,为了保护一些面向用户的延迟敏感型应用,例如搜索服务、实时翻译服务、视频网站等应用的服务质量,通常会为其分配过多的资源来保证其性能,这其实是在一定程度上导致了服务器的资源利用率很低。各大公司为了提高自己数据中心的资源利用率,常常将延迟敏感型应用(latency-critical,LC)和其他应用(best-effort,BE)混合运行来提高资源利用率,但是这种方法最大的挑战是,这些应用混合运行之后对于系统的共享资源(如cache、memeory、I/O channels和network links)产生竞争进而对LC应用产生了干扰,对于LC应用来说,在尾延迟(tail latency)方面有非常严格的SLOs(service level objectives),甚至只有一点点的干扰都有可能违反SLO,这样常常导致LC应用的服务质量下降(用户的体验变差)。
作者的目标是消除LC作业的SLO违规,同时最大化BE任务的吞吐量。
为了实现这个目标呢,作者面临了三个挑战:
- 我们必须认真分配每个资源。保守的分配将降低BE任务的吞吐量,而乐观的分配将导致违反LC任务的SLO。
- 这两种任务的性能取决于多种资源,这将导致很广的资源分配空间,这就需要随着负载实时变化的同时去探索这些资源分配的空间。
- 在现在的服务器中,孤立和非孤立资源之间存在并不明显的相互作用。例如,为了避免热数据的驱逐而增加LC任务的cache,这可能会导致BE任务的未命中增加而产生内存带宽方面的干扰。
本文作者提出了Heracles,它通过软件和硬件方面的资源隔离机制,使不同的任务能够在一台物理机上运行。它能够在保证LC服务性能稳定的情况下,最大限度的将空闲资源给BE作业来使用,

Heracles是一种针对数据中心的设计,旨在确保延迟敏感应用(LC)的服务质量,同时最大化最佳努力应用(BE)的吞吐量。通过软件和硬件资源隔离,Heracles实现实时监控和干扰预防,以优化服务器资源利用,降低LC应用的尾延迟违规,同时允许BE应用利用空闲资源。
最低0.47元/天 解锁文章
855

被折叠的 条评论
为什么被折叠?



