GPU 实例长期跑图,dsh-comfyui 的几条运维习惯
装好只是第一天。真正拉开差距的是之后几个月:队列里堆了十几个僵尸任务、输出盘悄悄满了、某个工作流忽然报"模型不存在",而你完全想不起上次改了什么。下面这几条按"每天会碰"到"半年才碰一次"的顺序排,都是些不需要额外工具的习惯。
需要先说明的是,这篇只谈插件这一侧的日常维护,不涉及 ECS 上怎么开局、安全组怎么放行。那些属于首次部署,做完就不该再回头折腾。
一、把队列当账本,不当进度条
队列页签把实时队列与历史并排列出,五种状态全摊在页面上,中断、重跑、清空、删除、释放内存都在这一页。多数人只把它当进度条看,其实它更像个账本:哪个任务失败了、失败在第几步、上次同样的参数跑了多久,都在这儿。
三个习惯值得养:
批量之间释放内存。 连着跑十几张之后显存碎片会积累,后面几张可能莫名其妙地慢或者直接失败。与其去翻显存占用,不如每批结束点一次释放内存,代价几乎为零。
中断优先于杀进程。 任务卡住时,从队列里中断是干净的;直接去 ECS 上 kill 掉进程,队列里会留下一条永远不结束的记录,下次看历史还得自己分辨。
重跑比重新描述省事。 参数只差一点的时候,找到那条历史点重跑,改一个数,比重敲一遍需求可靠得多。
二、清理要有边界:资产删的是哪一份
资产页删一张图,会顺带把 ComfyUI output 目录里那份一并抹掉。这个联动很实用,但也意味着"删除"是不可逆的两处同时生效。
边界要自己划清楚:
- 输入素材和输出别放同一个目录。 加载区里粘进去的参考图如果和输出混在一起,清理时很容易连带删掉还要用的源图。
- 先归档再清理。 值得留的图先下载到本地或对象存储,再在资产页里删。插件没有回收站。
- 注意
outputDir指对了没有。 它默认自动推断;机器上装了两套 ComfyUI、或者输出目录改过名的时候,推断可能落空。指错的后果有两种:删不动(提示找不到文件),或者更糟,删到另一个实验的文件。
盘满之前没人关心这件事,盘满之后就只剩应急。
三、comfyuiDirs 配全,别让 Agent 猜模型在哪
这个字段填的是本机 ComfyUI 的安装路径,可以写多条。Agent 靠它定位模型目录、自定义节点与音色库。
不配的后果很直接:工作流里引用的模型名对不上实际文件,运行时失败,而报错信息通常只说找不到某个名字,不会告诉你去哪个目录找。远程 ComfyUI 的场景下它帮不上忙,留空即可 —— 但也别指望它能替你检查远端模型齐不齐。
有几套环境就配几条:正式的、测试的、绿色便携版。路径搬过家之后记得回来改,这种"配置还指着旧路径"的故障最难查,因为它安静。
四、skillsDir 放版本库还是同步盘
技能包默认落在 dataDir/skills。这个目录可以指到别处,于是就有了一个取舍。
放版本库的好处是能 review、能回滚、能分享给同事。代价是技能包里带 assets/ 参考图,二进制文件会把仓库撑得很难看,通常得配 LFS,或者约定只把 SKILL.md 与 references/ 纳入版本控制。
放同步盘的好处是多机立刻一致,出差换台电脑也能接着用。代价是并发写:两台机器同时 append 同一份 SKILL.md,同步工具多半会留一个冲突副本,而 Agent 读到的可能是半截内容。
我的做法是"单人单写":同一时间只让一台机器往技能包里写,其余机器只读。这样两边的好处都能拿到,冲突的概率接近零。
五、密钥走环境变量,不走配置文件
远程 ComfyUI 若挂在需要鉴权的代理后面,密钥有两种给法:写进 cordis.yml,或者让 apiKeyEnv 把这活儿交给环境变量(默认名 COMFYUI_API_KEY)。
选后者,理由不是洁癖。cordis.yml 会被备份、被同步、被贴进工单截图,而环境变量可以在 systemd 的 EnvironmentFile 或容器 secret 里注入,轮换时改一处、重启一次就完成。插件本身不会把密钥下发到浏览器,但这跟"密钥不该进仓库历史"是两件事。
顺带说一句 mediaHost:它决定生成结果对外用哪个地址访问。长期跑图的机器通常会配一个固定域名,别让它跟着自动检测漂移 —— 域名换了,历史链接就全断。
六、升级前先导出,别信"重装不丢库"
卸载或重装插件不会带走 dataDir 里的工作流库与技能包,这是好事。但"没被删"不等于"有备份":盘坏了、误删了、换机器了,一样没有。
低成本的做法是:跨版本线升级(0.5.x 与 0.3.x 之间互跳)之前,把常用工作流导出成 .zip 预设包,技能包一起打进包里。导出的回执会列清打包了哪些工作流、文件名与体积,平时也可以拿来核对库有没有少东西。
顺便提醒版本约束:宿主版本得落在 0.1.2(含)与 0.3(不含)之间,还停在 0.1.1 的机器只能留在 0.3.x 线。长期运行的机器最怕"顺手升一下",升之前先看这张表。
一套五分钟的巡检
每周花五分钟,按顺序看四件事:队列里有没有不会结束的任务;outputDir 所在磁盘的剩余空间;点一下会话头部的面板按钮,确认后端还连得上;随机打开一条较早的媒体链接,确认历史文件还能读。第四项最容易被忽略,因为媒体代理按文件名转发,文件被移走之后链接失效,但界面上看不出异常。
安全这块也留一句:扫描结论把它标成"含敏感能力",人工评估一栏至今是空的。它具备本地文件读写、联网请求、驱动远端服务的能力,长期挂在机器上时,把这些权限当成真实权限对待比较稳妥。
总结
长期跑图的成本不在装,而在"记得清理、记得核对、记得别把密钥写进配置"这几件小事上;
适合与不适合
适合:一台 GPU 机器连续跑几个月、需要稳定队列与磁盘节奏的;多套 ComfyUI 环境并存、经常搞混模型路径的;技能包要在几台机器之间共享的;远程后端挂在鉴权代理后面、需要轮换密钥的团队。
不适合:一周只出一两张图、谈不上运维的;用的是托管出图服务、本地没有 ComfyUI 的;只做纯文本处理、工作流里根本没有画面节点的;dsh 仍为 0.1.1 又不愿升级的 —— 这条线的维护建议参考价值有限。
标签:dsh-comfyui、DeepSeek Harness、GPU 运维
本文由 DeepSeek Harness Hub 自动整理,数据来源于插件详情页。