fix: 收敛 NC01 物理内存回收边界

This commit is contained in:
pikastech
2026-07-21 09:13:07 +02:00
parent d74650e56d
commit 6c123a1d96
5 changed files with 39 additions and 18 deletions
+6 -3
View File
@@ -73,13 +73,16 @@
- 数量、超时、资源和 namespace 范围全部由 `config/unidesk-cli.yaml`
`memoryPressure.attribution` 拥有。
NC01 的内存压力文件页回收规则:
NC01 的内存压力 cgroup 回收规则:
- 只从 YAML 精确允许的 k3s cgroup 请求回收;
- 固定使用 `swappiness=0`
- 不把 swap 当作可用物理内存;
- 不终止 workload,也不重启 k3s
- 执行前由 overview 证明目标 cgroup 存在足够的非匿名页;
- `swappiness=0` 的文件页回收必须由 overview 证明目标 cgroup 存在足够的非匿名页;
- `swappiness>0` 的匿名页回收必须同时满足:
- owning YAML 声明目标 cgroup、回收量、`minimumInactiveAnonBytes` 和 swap 保留线;
- plan 与执行前复核 `inactive_anon` 不低于 YAML 下限;
- 最坏情况下的换出量不会突破 YAML 声明的 `minimumSwapFreeBytesAfterReclaim`
-`plan``run --confirm``status``memory` 的顺序复核实际结果。
默认 `/tmp` GC 只包含 allowlisted 诊断目录和已知低风险路径。非 allowlist 的 stale `/tmp` 一级子项必须显式 `--include-stale-tmp` 才能进入候选;扫描按 `--limit` 有界枚举候选,执行时仍只允许删除 `/tmp` 直接子项,并避开 X11/ICE/font socket、systemd private、tmux、ssh、vscode 等系统/session 前缀。该入口不能递归扩大成通用 `/tmp` 清空器,也不能为了估算全量临时目录而长时间阻塞。