十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Day 3:容器化 DAG 调度基础概念学习

Day 3:容器化 DAG 调度基础概念学习 1. 为什么我一开始会觉得这些论文特别乱刚开始看 DAG有向无环图调度、Edge Computing边缘计算和 Container容器相关论文时最容易出现的问题不是公式不会算而是“每篇论文为什么考虑的东西都不一样”。其实这些论文大多共享同一套系统骨架只是作者会根据自己的研究问题选择一部分因素详细建模把其他因素简化为 assumption假设。因此学习时最重要的不是背每篇论文而是先建立一套统一坐标系。看到一个新名词时先问它属于计算资源、网络资源、存储资源、运行环境还是 DAG 依赖2. 一台 Edge Server边缘服务器里面到底有什么最容易混淆的一组关系是Edge Server边缘服务器、CPU中央处理器和 Core处理器核。正确的层级是一台 Edge Server 是一台计算机/服务器CPU 是它内部的计算部件Core 是 CPU 内部可以执行计算工作的处理单元。服务器内部部件主要作用CPU / CoreCPU / 核执行计算任务多个核可支持多个任务并行执行Memory内存保存运行中的程序状态和数据Storage / Cache存储 / 缓存保存 Image镜像、Image Layer镜像层等Network Interface / Bandwidth网卡 / 带宽下载镜像、传输 DAG 前驱数据、节点间通信Container Runtime容器运行时根据镜像创建和启动容器并管理容器生命周期因此不是“一个 CPU 里面有多个 Edge”而是“一台 Edge Server 里可能有一个或多个 CPU而 CPU 又有多个 Core”。论文中常把一台 Edge Server 的计算能力进一步抽象成若干 virtual cores虚拟核。3. 一个 DAG Task任务从被调度到完成完整经历什么DAG 中前驱任务完成 → 当前任务成为 Ready Task就绪任务Scheduler调度器决定任务应该去哪个 Node / Edge Server节点 / 边缘服务器检查该节点是否已经有任务需要的 Image / Image Layers镜像 / 镜像层若缺失则通过 Network网络执行 Image Pull / Layer Download镜像拉取 / 镜像层下载根据镜像创建并启动 Container容器执行 Runtime Environment Preparation运行环境准备例如解压、加载库、导入软件包等等待 predecessor data前驱数据传输完成形成 Input Data Ready输入数据就绪等待 CPU Core / virtual coreCPU 核 / 虚拟核可用Task Execution任务执行Task Finish任务完成结果继续发送给 successor后继任务关键镜像下载、容器准备、数据传输、任务执行并不是“全都在 CPU 核上做”。它们使用的是不同类型的系统资源。4. Cold Start冷启动到底指哪一步Cold Start冷启动通常不是单指“下载镜像”也不是单指“启动容器”。它更接近当系统没有一个可以立即复用的 warm container热容器时从“没有现成运行环境”到“任务真正可以执行”产生的额外准备开销。在不同论文中Cold Start / Startup冷启动 / 启动的数学定义可能不同。例如 SDTS 将 task startup任务启动建模为两部分environment downloading time运行环境下载时间 environment preparation time运行环境准备时间。后者包括 container booting容器启动、package importing软件包导入等。因此如果 Image 已经缓存本次可能不需要重新下载但仍可能需要创建/启动容器只有当已经有可复用的 Container Instance容器实例时才更接近 Warm Start热启动。场景需要做什么直观理解Image 未缓存Container 不存在下载镜像 准备/启动容器冷启动开销通常最大Image 已缓存Container 不存在跳过镜像下载但仍需容器准备仍可能有启动开销已有可复用的运行中 Container Instance直接或近乎直接执行任务接近 Warm Start热启动5. 论文中的 Parallelism并行其实有很多种术语中文最简单的理解Task Parallelism任务并行多个无依赖/已就绪任务同时执行Core Parallelism多核并行同一服务器多个核同时执行不同任务Workflow Parallelism多工作流并行多个 Workflow 同时到达并竞争资源Image Pull Parallelism镜像拉取并行多个镜像同时通过网络下载Layer Loading Parallelism镜像层加载并行多个镜像层、甚至多个 MEC 服务器协同并发加载Data Transmission Parallelism数据传输并行多条依赖数据流同时传输Container Parallelism容器实例并行一台节点同时运行多个容器实例6. 为什么不同论文“有的考虑、有的不考虑”因为论文不是在复刻完整真实世界而是在建立一个 System Model系统模型。作者会根据研究问题明确哪些资源与过程需要精细建模哪些过程暂时用常数或假设简化。例如 SDTS 允许一台 edge server 通过多个 virtual cores 并行执行任务但同一 edge server 的环境下载采用顺序模型另一篇关于 Device-Edge-Cloud端-边-云系统的工作则进一步研究 multi-core多核、batch scheduling批调度和 concurrent image-layer loading并发镜像层加载。不同选择对应不同研究问题。7. 以后读任何调度论文只填这 9 个维度维度阅读时只回答这个问题1. Workload Model工作负载模型一个 DAG 还是多个Static静态还是 Dynamic动态2. Dependency Model依赖模型前驱/后继怎么定义任务什么时候 Ready就绪3. Compute Model计算模型Device / Edge / Cloud几核允许多少任务并行4. Runtime Model运行环境模型是否考虑 Image、Container、Cold Start、Executor5. Cache Model缓存模型缓存整个 Image 还是 Layer容量是否有限是否删除/替换6. Network Model网络模型Bandwidth 是固定、动态还是共享是否存在 contention争用7. Parallelism并行模型任务、核、镜像下载、镜像层、数据传输哪些允许并行8. Scheduling Decision调度决策决定任务顺序、节点、Core、Container、Layer 还是 Bandwidth9. Objective优化目标Makespan、ACT、MUS、Cost、Energy还是其他8. 用 HEFT、SDTS 和一篇 Image-Layer 工作做快速对照维度HEFTSDTSImage-Layer / Batch Scheduling 工作DAG dependency依赖✓✓✓可含多应用Runtime startup运行环境启动×✓✓更偏镜像层加载Image layer镜像层×不作为核心✓ 核心多核任务并行抽象异构处理器✓ virtual cores✓ multi-core同节点环境/层下载不涉及顺序下载可设计并发/协同加载调度粒度单任务单任务Batch批次主要目标MakespanMakespanMakespan
返回列表