kb41 gpu-reaper — 显存驻留治理哨兵 · 收口验证页

2026-09-28 · 架构老司机 9 commits + operator 1 commit · 69 tests 绿 · 真机金丝雀收割闭环 · systemd --user 已上产

§1 三问定谳(Kai 0928)

问题定谳证据
常驻该不该允许?设计已在·执行翻车kais-ear hybrid_server 本有 idle TTL 900s reaper;但其 spawn 的 vllm EngineCore 在 server 优雅退出后逃过收割成孤儿,7.1G 独占 GPU2 8.6h,期间 UGQ dispatch_evict 全败
利用率长零=非法占用?否·判据是所有权8188 缓存驻留 21G 利用率也是 0 但合法(可 /free)。合法=有租约或归属活服务;无租约+归属链断(init 收养)=非法可收割。利用率只做告警信号
长零自动清缓存?分两层ComfyUI 缓存层五期 evict-before-dispatch 已治;进程驻留层本次补上= gpu-reaper

§2 金丝雀 Showcase(真实收割闭环)

构造真孤儿:双 fork 守护化 + 中间代退出 → 孙进程被 user systemd 收养(ppid=2278),持 GPU 1178MiB,cmdline 无任何服务签名 —— 与 vllm 孤儿拓扑完全同构。

13:34:07 金丝雀上岗 pid=1244547 · python3 /tmp/canary_hold.py · GPU 1178MiB · ppid=2278(init 收养)
13:39:10 生产 daemon 自动捕获:cycle reap_candidate=1,登记进 candidates.json(宽限 1800s 计时开始,first_seen 落盘)
13:40:44 收口验证轮(test config 宽限 10s):once → 宽限满 → 二次核验 start_time 一致 → SIGTERM delivered=True
13:40:44 进程死亡(TERM 即死无需 KILL)· 账本 reaped 1244547 宽限10s满 归属链断 · 收割前快照落盘
state/reaped-1790574044-1244547.json
{ "pid": 1244547, "name": "python3", "mem_mib": 1178,
  "cmdline": "python3 /tmp/canary_hold.py", "start_time": 125949751,
  "ppid": 2278, "rss_kib": 590968, "cwd": "/data/workspace/gpu-reaper" }

✓ 其余 7 个 GPU 进程(3×ComfyUI 主从、breeze-tts、music3、chrome-gpu、hermes venv)全部判 warn_unleased 零误杀

§3 处置矩阵与防护(已实测)

防线语义验证
白名单最优先lora_lab/batch/benchmark + 显式 pids 永不碰67 单测
服务签名=所有权cmdline 命中 comfyui/vllm/hybrid_server/breeze-tts/music3-env/chrome/hermes-agent… → 只 warn 不杀真机 7 进程实测
宽限+撤销默认 1800s;期间取得租约/归属修复 → 自动撤销记 repealed单测 + 生产 daemon 已登记金丝雀后 once 撤销路径
pid 复用防御kill 前 re-read /proc/stat field22 比对,不一致放弃单测
缺源降级KAP 挂→孤儿照收;/proc 挂→全局禁杀只 warn单测
只杀自身 pid绝不 kill 进程组代码审
重启不丢计时candidates.json 原子写+恢复(operator 增补:daemon 重启宽限归零缺陷修复)真机金丝雀登记实测 + 2 单测

§4 生产在岗状态

systemctl --user status gpu-reaper   → active (running), 60s/cycle, grace=1800s
journalctl --user -u gpu-reaper -f   → cycle: reap_candidate=N warn_unleased=N
账本: /data/workspace/gpu-reaper/state/ledger.jsonl (JSONL 逐事件)
卸载: systemctl --user disable --now gpu-reaper

仓库: /data/workspace/gpu-reaper · 设计稿 docs/GPU_RESIDENCY_GOVERNANCE.md · 工单 docs/WORKORDER.md · 交付报告 docs/DELIVERY_REPORT.md

§5 已知边界(诚实声明)

§6 Kai 终审