Sigcomm'18

AuTO: Scaling Deep Reinforcement Learning for Datacenter-Scale Automatic Traffic Optimization

问题

主要问题:流量算法的配置周期长,人工配置难且繁复。人工配置的时间成本大,人为错误导致的性能降低。

要计算MLFQ的阈值参数是很麻烦的事情,先前有人构建了一个数学模型来优化这个阈值,在几个星期或者几个月更新一次阈值,更新周期过长。

可以使用DRL(Deep Reinforcement Learning)的方法根据环境自动配置(决策)算法参数,减少人工配置的时间成本,减少人为错误导致的性能降低。

基于主流框架TensorFlow或是pytorch等框架的的DRL难以掌控TO(traffic optimization)的小流(速度过快)

使用DRL优化时遇见的问题:DRL配置TO时,由于小流通过速度大于配置下发的速度,所以来不及下发配置。

解决方法

优化的算法:采用 Multi-Level Feedback Queueing(MLFQ)来管理流。第一级别的队列为小流,所有流初始化为小流。当流的大小超过阈值时,判定为大流,在队列中被降级到第二队列。可以有k个队列,按照流的不同级别分在不同的队列当中。

决策参数:基于比特数和阈值来对每个流做出决策,判定流属于第几级别的队列。

评价参数:当一次流处理完成时,计算一个比率,比率为本次的吞吐量与前一次的吞吐量之比。 吞吐量Sizef(流长)与FCT(Flow completion time)之比。

使用DRL优化:使用强化学习优化阈值。根据结果反馈调整阈值的设定。

状态和奖励返回是随机的马尔科夫过程

模型选择

公式一

公式一的改进:公式二

算法主要使用公式二

公式二的相关解释

算法

论文从强化学习的算法PG讲到DPG再讲到DDPG,最后使用了DDPG。

经过查询资料,DDPG使用了深度神经网络,并且针对的是决策值为连续的情况,而参数值的变化又是连续的,所以使用DDPG较为合适且有效。

当一次流处理完成时,计算一个比率,比率为本次的吞吐量与前一次的吞吐量之比。 吞吐量Sizef(流长)与FCT(Flow completion time)之比。

框架构建

模型组成:

  • 边缘系统
  • 中心系统

边缘系统

有一个MLFQ,首级队列为小流,当流超过阈值,判定为大流,在队列中被降级。

边缘系统分为增强模块探测模块

  • 探测模块:获取流的状态信息(包括所有流的大小和处理完成的时间)
  • 增强模块:获取中心系统的action,执行操作。

中心系统

其中的DRL有两个agent:

  • sRLA(short Reinforcement Learning Agent): 优化小流阈值
  • lRLA(long Reinforcement Learning Agent):优化大流,速率、路由、优先级

最新文章

  1. nginx location在配置中的优先级
  2. ffmpeg-20160515-git-bin
  3. C# waitformultipleobjects()
  4. c#启动进程
  5. 最简单的视频编码器:编译(libx264,libx265,libvpx)
  6. 分享我的2014年3月unity3d面试题与参考答案
  7. Android实例-退出程序(XE8+小米2)
  8. 大规模字符串检索-压缩trie树
  9. 开发RESTful WebService
  10. 1-5html文件基本结构
  11. javascript数组详解(js数组深度解析)【forEach(),every(),map(),filter(),reduce()】
  12. XStream实现缓存
  13. C++中使用引用作为函数参数的优点
  14. mybatis 插入 含有美元符号($) 字符串 报 java.lang.IndexOutOfBoundsException: No group 2 的问题
  15. python设计模式第十九天【职责链模式】
  16. PHP异步请求之fsockopen()方法详解
  17. Java访问修饰符(访问控制符)
  18. 有关导出Excel特殊字符的问题
  19. Linux入门:常用命令:查看硬盘、分区、CPU、内存信息
  20. windows下根据进程ID强制杀死进程

热门文章

  1. MySQL数据库的备份与恢复命令
  2. 用css动画写一个下红包雨的效果
  3. 使用javascript调用android代码
  4. 关于<!DOCTYPE html>
  5. 软工读书笔记 week3 (《黑客与画家》上)
  6. java 反射和泛型
  7. 用squid做http/https正向代理
  8. 哪个HTML5内建对象用于在画布上绘制?()
  9. 如何去掉HTML代码来获取纯文本?
  10. where T : class泛型类型约束