【边缘计算实战】P3:把卸载策略接到线上------弱网 / 过载 / 节点宕机注入
系列 :巡检机器人边云协同(P1→P2→P3→P4)
代码仓库 :https://gitee.com/ghaweiuptgb/edge-computing
本篇目录 :
projects/p03-online-offloading前置:P1(策略)+ P2(Compose 运行时已启动)
一、P3 要解决什么?
导师项目标题里常有「复杂环境」四个字。如果只做实验室理想网络下的仿真,故事是不完整的。
P3 做三件事:
- 在线调度 :用 P1 策略选节点,真实调用 P2
/infer - 工况注入:normal / weak_net / edge_overload / node_down
- online vs sim:承认差异,但讲清原因与相对结论
一句话:
让策略从「笔记本上的公式」走到「容器里的 HTTP」。
二、整体数据流
text
任务流 (同 P1 的 seed 生成)
→ Offline Policy.select(nodes, network)
→ 故障注入(延迟 / 丢包 / 队列 hint / docker stop)
→ POST http://node/infer
→ JSON 结果 + 日志落盘
→ 与 P1 Simulator 对比
关键适配:P2 Registry 返回 JSON,需映射为 P1 的 ComputeNode;宿主机访问容器时,把 http://edge-node-a:8001 映射为 http://127.0.0.1:8001。
三、四种复杂环境工况
| 工况 | 在线怎么注入 | 目的 |
|---|---|---|
normal |
无额外注入 | 基线 |
weak_net |
云端额外延迟 + 小概率丢包 | 惩罚无脑上云 |
edge_overload |
抬高边侧队列 hint | 逼策略分流 |
node_down |
docker compose stop edge-node-a + alive=False |
宕机容错 |
四、环境准备
bash
# 1) 先启动 P2
cd edge-computing/projects/p02-edge-runtime
docker compose up -d
# 2) 跑 P3
cd ../p03-online-offloading
pip install -r requirements.txt
python -m pytest tests/ -v
五、快速实验
单工况对比(弱网)
bash
python scripts/run_profile.py --profile weak_net --policy always_cloud --n-tasks 40
python scripts/run_profile.py --profile weak_net --policy greedy_min_latency --n-tasks 40
矩阵实验
bash
python scripts/run_profile.py --matrix --profiles normal,weak_net,edge_overload --n-tasks 30
输出:
text
experiments/results/summary.md
experiments/results/online_*.json
experiments/logs/*.log
总验收
bash
python scripts/accept_p3.py
六、怎么读 online vs sim?(非常重要)
很多同学会慌:「为什么线上成功率和仿真不一样?」
请记住这张表:
| 维度 | 仿真 P1 | 在线 P3 |
|---|---|---|
| 执行 | 公式直接算 | HTTP + 真实 sleep |
| 网络 | 写进公式 | 额外 delay / 丢包 |
| 抖动 | 无 | Docker / OS 调度 |
| 宕机 | alive=False | 可选真 stop 容器 |
正确读法:
- 不要追求绝对数值相等
- 要看策略 相对排序 是否大体同向
- 差异写进报告,本身就是科研训练
仓库文档:docs/online-vs-sim.md
七、失败可观测
每次运行会写日志,例如:
text
experiments/logs/weak_net_always_cloud.log
里面能看到:
dropped(注入丢包)infer_fail/infer_exception- 选了哪个节点
这为 P4 的告警与诊断埋了伏笔。
八、组会怎么讲(40 秒)
P1 证明策略在仿真里有效;P3 把同一套策略接到真实边缘服务,并注入弱网、过载、节点宕机。
线上数字会和仿真有偏差,但相对结论仍然成立,说明方法经得起「复杂环境」。
九、小结与下期预告
P3 打通了「策略 → 运行时 → 工况」。
下一篇 【P4】可观测与运维诊断:做指标、告警、规则诊断,并给一个浏览器面板,注入故障后能「看到报告」。
标签建议 :边缘计算 计算卸载 故障注入 弱网 Docker 在线调度
系列导航 :P1 仿真 → P2 运行时 → P3 在线卸载(本篇) → P4 可观测诊断