论文部分内容阅读
在当今互联网时代,随着移动终端、互联网应用以及云计算模式的快速发展,数据中心已经成为社会基础设施。然而数据中心面临提高资源利用率和保障服务质量的矛盾,一方面通过在数据中心同时部署多个应用能提高数据中心的资源利用率,另一方面应用之间共享资源会导致资源竞争而出现干扰,严重影响应用的服务质量。延迟是在线应用服务质量的关键指标,保障在线应用的服务质量就是要保障在线服务具有稳定的低响应延迟。一个数据中心请求一般都会访问多个服务器节点,任意单个节点的性能波动都会导致整个请求变成长尾请求,避免单节点性能波动是消除数据中心请求长尾延迟的关键。研究单个服务器节点的请求响应延迟,对于消除数据中心长尾延迟,提高数据中心资源利用率具有重要意义。 本文的目标是针对数据中心单个服务器节点上的单个请求的延迟进行细粒度的量化分析。为了实现这个目标,本文提出了一种方法,对内核态的网络包和应用层的请求进行标记和跟踪,然后识别出请求和网络包的对应关系,运用这种方法,我们能够量化单个服务器节点上单个请求在软件栈各个阶段的延迟,包括接收阶段延迟、协议栈处理延迟、IO多路复用延迟、应用层处理延迟等。本文选取数据中心典型应用Memcached作为分析对象,实验结果显示,本方法能够精确量化单节点上单个请求的各个阶段延迟;在单个服务器节点上同时部署多个应用,即延迟敏感的关键应用和非关键应用混合部署时,本方法能检测到关键应用的IO多路复用阶段延迟和应用层处理阶段延迟明显增大。在监控分析的请求数目小于峰值请求数目的80%时,本方法带来的延迟开销不超过70%,并且在大多数情况下,延迟开销小于20%。