跳到主要内容

v0.2.68 — 孤儿 Traefik 路由自动回收

修复生产 Traefik 被上千僵尸路由文件拖垮、外部访问全部超时的问题。

问题背景

生产 Traefik 一天内卡死 2 次,外部访问全部超时,系统基本不可用。根因: /data/memex/traefik-conf/ 累积 1119 个路由文件,其中 1065 个是僵尸 (预览进程早已死、路由文件残留)。Traefik file provider 每次文件变更就全量 reload 上千个 YAML,8668 entrypoint 监听 hang,外部请求全超时。

僵尸来源

正常 stop_serve 会删路由,但容器重建杀进程、OOM、崩溃等异常路径不走 stop_serve,路由文件就永久留下了。

修复内容

新增 reap_orphan_routes():扫路由文件,用端口 HTTP 探活判定预览死活, 删掉端口无响应的孤儿路由。挂到 preview_patrol_loop(每 300s),持续把 路由数收敛到实际运行的预览数。

生产处置:立即批量清理 1065 个僵尸路由(1119→55),Traefik reload 压力锐减,外部访问恢复(探活稳定 0.3-0.5s)。