论文部分内容阅读
保证延时敏感型应用产生的流量的低延时和最小化吞吐密集型应用产生的数据流的平均流完成时间是数据中心内性能优化的两个重要指标。现有的方案通常只优化了其中一个指标,或是需要假设相关数据流信息已知。但在很多应用中,数据流信息很难在数据传输结束前获得。所以,我们的目标是要找到一种不需要假设数据流信息就能同时优化两个指标的数据流调度方案。 我们提出了Panda,一种不需要假设数据流信息,而是通过分析运行在数据中心内的应用的流量特征来同时优化两个指标的流调度策略。我们分析了Facebook数据中心内的流量特征后发现,延时敏感型应用产生的数据包大小偏小,而吞吐密集型应用却倾向于产生较大的数据包。所以,Panda根据这一特性对两种应用产生的流量进行区分。Panda的核心思想是,找到一个最优阈值,根据大小将数据包分成大包和小包,保证小包在延时敏感型应用中占主要部分,而大包则主要集中在吞吐密集型应用中;然后为每条数据流分配一个计数器,当数据包到达时,更新计数器的值:如果数据包为大包,增加计数器的值,否则减小计数器的值;之后根据计数器的大小为数据流分配优先级;最后配合多优先级队列,使得延时敏感型应用产生的数据流一直处于高优先级队列,从而保证其低延时,而吞吐密集型应用产生的数据流的优先级则随着其已经发送的数据量的增加而逐渐降低,从而近似实现了短流优先策略,优化了其平均流完成时间。 我们在Linux平台上实现了一个Panda的原型系统,并评测了其性能。实验结果显示,Panda能有效保证延时敏感型应用的低延时要求。与PIAS比较,当延时敏感型应用产生的数据流大小较大时,Panda能降低其请求延时的99%分位值的50%左右,并能同时保证与PIAS基本一致的平均流完成时间优化性能。