这篇文章主要是通过分析数据,想知道影响视频质量的问题主要在哪些地方,以及对这些问题进行解决的优化潜能。对一些想提出具体的优化策略的工作具有一定的启发和参考。
文章的数据集非常大而全面,涵盖不同地区的客户端、不同内容提供商、不同CDN、不同视频类型、不同传输方式等等。使得它们的分析结果更有普适性。
数据集由session组成,每个session有各自的属性和QoE数据。
分析步骤
- 标记问题session:把QoE不好的session标记出来。
中间结论:确实存在不少QoE不佳的session,说明有相当一部分用户观看视频时体验不佳。
- 给session分类:按session的不同属性,把它们分进不同的cluster里。每个cluster代表一类有着相同属性的session的集合。
- 这里所谓的相同属性可以只有一个维度,比如说同一个CDN(CDN1)
- 也可以有多个维度,比如说同一个CDN且同一个(CDN1)且请求客户端都来自中国。显然后者为前者的子集
- 把子集关系用有向边表示,比如A-》B表示A是B的子集,可以得到一个DAG
- 标记问题cluster:如果所有session里有a%有问题,该cluster里有超过1.5*a%有问题,则当成问题cluster。
- 计算问题cluster的流行性和持久性:这个cluster在整个时间范围内是有问题的,但是它不一定是每个时期都有问题。流行性指的是它有问题的时期多不多,持久性是它有问题的时期长不长。
中间结论:
- 有很多问题cluster发病率很高,找出它们并改善它们会解决大部分问题
- 有很多问题cluster持续时间较长,在前期发现它们并改善也会解决很多问题。
- 压缩需要分析的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,得到一些结论。
讨论如何改进
都是通过分析数据得到的结果,并不是使用了具体策略进行改进,其实相当于是衡量一下改进潜能。
- 改进什么样的集群:是流行性高的?还是持续性高的?还是问题session占比高的?=》问题session占比高的相对改进得更多。
- 分析两种类型的改进方法:
- 分析历史数据的离线方式:在某时候停下来,分析历史记录,找到关键cluster并改进它。
- 实时检测并做出反应的方式:在某问题出现超过一定时间,对它做出改进。
两种类型的方法都能有效改善。