视频负载测试

2020-03-19 11:27:10 浏览数 (1)

本篇是来自Video @Scale 2019的演讲,演讲者是来自亚马逊Resilience Engineering部门的Olga Hall,演讲题目为“Video load testing”,演讲介绍了亚马逊的视频服务的演进过程,以及如何进行负载测试。

Olga首先介绍了一位2001年加入亚马逊的工程师Jesse。在此之前,亚马逊服务的目标是找到能给用户最好体验的路径,而Jesse提出,我们更应该去寻找处理服务故障的措施。在当时,亚马逊整体服务就像是一个球,庞大、相互关联,Prime Video只是其中的一小部分。从人工手动进行负载测试,到建立常青树计划,到添加工程分支,到实现内部的各种工具,再到现在的全自动的部署测试,亚马逊服务在进行不断升级。现在,Prime Video可以每周运行3次全自动的部署测试。

接下来Olga举了几个他们遇到过的例子,说明了用户行为的不可预测性,更加反映出故障恢复的重要性。Olga从以下几个问题开始介绍实现上述目标的过程:

  1. 我们的服务能够正常处理预期中的负载量吗?

为此需要做常规的负载测试,例如服务能以多快的速度进行扩展部署等等。

  1. 负载的变化会如何影响服务的性能? 为此需要进行性能测试,包括在不同负载下的视频延迟、下载通量、误码崩溃等方面的性能。
  2. 系统负载的极限在哪? 为此需要进行压力测试,用于探测服务性能的边界,并探明系统瓶颈在哪。
  3. 如何处理系统崩溃? Olga称其为混沌(Chaos)测试,当CPU、内存资源耗尽,数据库丢失,网络故障等情况发生时,测试服务能否继续正常运行。

随后Olga介绍了他们的做法,例如复现之前出现过的拥塞场景,测试系统的警报功能等,以及故障恢复组件应有的功能,比如预测功能,数据分析,故障模拟等等。

最后,Olga给出了一些建议:从一个具体的目标开始,保持对程序的专注,迈出第一步,确保服务的恢复能力,及时收取用户反馈并对系统进行优化。

附上演讲视频:

http://mpvideo.qpic.cn/0bf2baaauaaadaaful3ek5pfacgdbieaacqa.f10002.mp4?dis_k=ad1375780a8237acfca2591128e4bff1&dis_t=1584588338

0 人点赞