【论文】略读笔记76-前沿-面向视频分析的状态细分实时迁移

【论文】略读笔记76-前沿-面向视频分析的状态细分实时迁移

Fre5h1nd Lv5

📖《Live Migration of Video Analytics Applications in Edge Computing》

2023 年 清华大学王继龙、王会老师团队 发表于 CCF-A 类期刊 TMC。

🎯需求

  • 为了有效调度资源或保持移动客户应用的连续性,边缘平台通常需要对其上的应用进行自适应迁移。
    • 公共边缘平台越来越受欢迎,如 AWS Local Zones 和 Azure private MEC。通过使计算和存储更接近终端客户,与云平台相比,它们可以为边缘应用提供更低的延迟和更好的服务质量(QoS)。
    • 边缘平台的杀手级应用是实时视频分析(VA)应用,这吸引了许多研究人员努力优化其性能。特别是,边缘平台需要自适应地改变边缘应用的位置,以应对用户的移动性或提高资源效率。

🚧现状

  • 许多研究都集中在何时何地迁移应用的调度决策问题上。
    • 但是,如何实现这些工作所做的迁移决策呢?换句话说,边缘平台需要一种解决方案迁移其上的虚拟局域网应用,同时又不会明显降低应用的性能
    • 在边缘平台上迁移虚拟局域网应用实质上就是迁移容器,因为边缘平台通常使用容器技术为应用服务,这是因为容器技术简单、开销低。当边缘平台决定迁移容器化应用时,它需要转移被迁移应用容器的内存状态
  • 许多研究人员对云内应用程序内存状态的迁移进行了研究,提出的解决方案按其基本思路可分为三类,即:
    • 1)检查点/恢复
    • 2)预复制
    • 3)后复制。
  • 然而,我们的测量结果表明,现有的迁移解决方案无法解决边缘计算中视频分析应用程序的迁移问题,因为视频分析应用程序的内存状态其他应用程序的内存状态具有不同的特点。
    • 1)典型 VA 应用程序的内存状态非常大,这使得 Checkpoint/Restore 效率低下
    • 2)典型 VA 应用程序运行期间内存状态的脏页率非常大,这使得预复制方法不可行。
    • 3)后复制方法需要更长的时间才能完成迁移,而且无法保证迁移过程中的应用性能,这对于边缘 VA 应用程序来说是不可接受的,因为这些应用程序通常对延迟要求很高

🛩创新

  • 我们对视频分析应用程序的内存状态进行了细分分析,并提出用三种不同的技术(即预热、同步和重放)分别处理三类状态,以尽量减少迁移对应用程序性能的负面影响。

    • 幸运的是,通过对虚拟机构应用的内存状态进行细分分析,我们发现并非所有内存状态都值得从源头转移到目的地,这就是状态同步的一种思路。
      • 1)需要传输的内存状态只有那些持久的、经常修改的状态(称为关键状态),如对象的特征点和虚拟机构应用程序特定组件生成的结果。
      • 2)相比之下,持久和未修改的状态(称为永久状态),如模型参数和运行时库,可以通过在目的地加载和初始化应用程序映像来提前恢复,这就是预热的概念。
      • 3)不稳定和频繁修改的状态(称为短暂状态),如 CNN 模型输出的中间特征,可以通过在目的地重新分析同一帧来重新创建,这就是重放的概念。
      • 我们的测量结果还表明,永久状态和短暂状态主导着 VA 应用程序内存状态的大小关键状态的大小较小,传输它们比传输所有内存状态更容易、更高效。
  • 基于这一想法,我们实现了一个原型系统,其中设计了两个新组件,即状态存储和边车sidecar,以最小的应用代码修改实现近乎透明的实时迁移。

    • 我们尝试为边缘平台开发迁移解决方案。然而,在实现这些想法的过程中存在两个问题
      • 1)首先,边缘平台应与现有应用程序兼容,而无需复杂的移植工作,但边缘平台缺乏使用上述想法进行迁移所必需的一些关键信息,这可能会导致大量应用程序代码的修改
        • 具体来说,边缘平台无法实时获取关键状态的内存页,也不知道应该重放哪些帧来获取应用程序的短暂状态。
      • 2)其次,迁移过程应该对应用程序(即边缘平台的客户)透明。
        • 换句话说,在边缘平台上无缝迁移应用应该是为边缘应用提供的一项服务,而且最好不会给应用带来任何开销
    • 我们设计了两个组件来解决上述实施问题,并以最小的应用代码修改实现近乎透明的迁移。
      • 1)我们要求应用程序主动向边缘平台报告其关键状态,这些状态将保存在新组件的状态存储中。
        • 状态存储的设计是分布式的,每个边缘服务器都有一个本地状态存储,用于保存本服务器上应用程序的关键状态。这样就避免了频繁的跨服务器数据传输,有利于提高应用性能。
        • 全局状态存储仅用于同步从源到目标的关键状态。
      • 2)另一个新组件 sidecar 的设计目的是提高迁移的透明度。
        • 有了它,应用程序只需在代码中适当插入两个简单的 HTTP GET/PUT 操作,就能请求/报告关键状态,而无需关心迁移解决方案的任何实现细节,从而以最小的应用程序代码修改实现应用程序迁移。
  • 总而言之,我们的工作有三个贡献。

    • 1)首先,我们分析了 VA 应用程序的内存状态揭示了现有的云计算场景迁移方法无法解决边缘平台中 VA 应用程序迁移问题的原因。
    • 2)其次,通过对内存状态的细分分析,我们提出了分别处理三类状态利用三种不同技术(即预热、同步和重放)进行迁移的建议。
    • 3)第三,在此基础上,我们使用精心设计的应用程序接口(API),以及边车sidecar和分层状态存储的新颖组合,以最小的应用代码修改实现视频分析应用近乎透明的状态迁移。

📊效果

  • 评估实验表明,我们的系统可以实现无缝的 VA 应用程序迁移,应用程序中断时间不超过 405 毫秒,并且不会以大量资源换取迁移性能的提高。

⛳️未来机会

  • 我们将讨论迁移方案的局限性和未来的研究方向。
    • 1)在我们的系统中,我们假设模型在 VA 应用程序的整个生命周期内不会被修改,但也有一些工作假设应用程序使用的模型在应用程序运行期间并不总是不变的。
      • 例如,有些工作建议根据服务器负载在轻量级和重量级模型之间切换。在这些工作中,虚拟机构应用可能会间隔切换所使用的模型。
      • 我们把切换模型的时间间隔称为时间窗口。从本质上讲,DL 模型可以在应用程序的整个生命周期内进行修改,但在时间窗口内不会改变。我们的系统可以在时间窗口内响应应用程序迁移命令,在这些作品的应用场景中迁移 VA 应用程序。
    • 2)在本文中,我们以两种典型的虚拟机构应用程序为例,指导开发人员如何修改应用程序。开发人员只需根据自己的经验确定应用程序特定组件代码中的关键状态即可。特定应用组件通常比较简单,因此开发人员很容易识别其关键状态。然而,复杂的特定应用组件仍然很少。为了确保带有复杂特定应用组件的迁移应用程序的可靠性,开发人员需要反复修改代码和相应的单元测试,以确定状态的完整性,这就增加了开发人员的负担
      • 理想情况下,我们应该提供一种工具来自动识别 VA 应用程序代码中的关键状态。理论上,我们可以使用静态分析来识别所有潜在的关键状态,然后使用动态分析尽可能缩小范围并消除冗余数据。详细设计将在我们今后的工作中探讨。

🧠疑问

  1. 最近看的几篇迁移方面的文章都不是攻击通用迁移方案(上一篇实时渲染、这一篇视频分析),而是结合某种特定应用的特点进行优化。还有什么重点应用具有特点?
  2. 论文写得非常清晰,很易懂,值得学习
  3. 核心逻辑:边缘环境中需要不断迁移以调整到最合适的应用状态->现有大部分研究关注迁移决策,少部分关注迁移执行、但由于VA应用的大内存状态、高脏页率、高延迟要求导致现有方法都不适用->细分发现VA应用的内存状态可被分为关键状态、永久状态、短暂状态三类,可以分别针对特点利用不同的方式迁移->进一步本文设计了对应的利用算法并实现了对应的系统。


  • 希望这篇博客对你有帮助!如果你有任何问题或需要进一步的帮助,请随时提问。
  • 如果你喜欢这篇文章,欢迎动动小手给我一个follow或star。

🗺参考文献

[1] C. Rong, J. H. Wang, J. Wang, Y. Zhou and J. Zhang, “Live Migration of Video Analytics Applications in Edge Computing,” in IEEE Transactions on Mobile Computing, vol. 23, no. 3, pp. 2078-2092, March 2024, doi: 10.1109/TMC.2023.3246539.

  • 标题: 【论文】略读笔记76-前沿-面向视频分析的状态细分实时迁移
  • 作者: Fre5h1nd
  • 创建于 : 2024-11-07 09:06:55
  • 更新于 : 2024-11-07 09:49:56
  • 链接: https://freshwlnd.github.io/2024/11/07/literature/literatureNotes76/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论