[Lemei Huang-Notes] Distribution bottlenecks

2017-11-11

Posted by 黄乐玫

这篇文章主要是通过分析数据,想知道影响视频质量的问题主要在哪些地方,以及对这些问题进行解决的优化潜能。对一些想提出具体的优化策略的工作具有一定的启发和参考。

文章的数据集非常大而全面,涵盖不同地区的客户端、不同内容提供商、不同CDN、不同视频类型、不同传输方式等等。使得它们的分析结果更有普适性。
数据集由session组成,每个session有各自的属性和QoE数据。

分析步骤

  1. 标记问题session:把QoE不好的session标记出来。

    中间结论:确实存在不少QoE不佳的session,说明有相当一部分用户观看视频时体验不佳。

  2. 给session分类:按session的不同属性,把它们分进不同的cluster里。每个cluster代表一类有着相同属性的session的集合。
    • 这里所谓的相同属性可以只有一个维度,比如说同一个CDN(CDN1)
    • 也可以有多个维度,比如说同一个CDN且同一个(CDN1)且请求客户端都来自中国。显然后者为前者的子集
    • 把子集关系用有向边表示,比如A-》B表示A是B的子集,可以得到一个DAG
  3. 标记问题cluster:如果所有session里有a%有问题,该cluster里有超过1.5*a%有问题,则当成问题cluster。
    • 计算问题cluster的流行性和持久性:这个cluster在整个时间范围内是有问题的,但是它不一定是每个时期都有问题。流行性指的是它有问题的时期多不多,持久性是它有问题的时期长不长。

      中间结论:

      1. 有很多问题cluster发病率很高,找出它们并改善它们会解决大部分问题
      2. 有很多问题cluster持续时间较长,在前期发现它们并改善也会解决很多问题。
  4. 压缩需要分析的cluster数量——计算关键cluster:把一些包含了很多小问题cluster的大cluster当作关键cluster,因为它们可能涵盖了这些小cluster里的信息。

    中间结论:关键cluster数量只有问题cluste的百分之几,但是覆盖到的问题session数量与问题cluster覆盖的问题session数量相比差不了太多。

通过关键cluster分析QoE问题的特点

  • 通过每个维度相关的关键cluster数量的占比,发现跟内容提供商、CDN、connection type、ASN相关的关键cluster最多,说明问题主要集中在它们上。
  • 对于QoE的不同指标,分析发现,比如虽然对buffer和init time影响最高的都是只按内容提供商分的cluster,但是这两组下具体的cluster又是不同的。
  • 人工分析了一些流行度高的关键cluster,得到一些结论。

讨论如何改进

都是通过分析数据得到的结果,并不是使用了具体策略进行改进,其实相当于是衡量一下改进潜能。

  1. 改进什么样的集群:是流行性高的?还是持续性高的?还是问题session占比高的?=》问题session占比高的相对改进得更多。
  2. 分析两种类型的改进方法:
    • 分析历史数据的离线方式:在某时候停下来,分析历史记录,找到关键cluster并改进它。
    • 实时检测并做出反应的方式:在某问题出现超过一定时间,对它做出改进。

      两种类型的方法都能有效改善。