这篇文章发表在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。
- 这两种任务的性能取决于多种资源,这将导致很广的资源分