# R1.2.7 任务报告

## 结果

- NC01 swap 已从 12 GiB 扩展为声明容量 64 GiB：保留 `/swapfile` 12 GiB 在线，新增 `/swapfile-unidesk` 52 GiB，未执行 `swapoff`，未停止、重启或修改 Webterm。
- 唯一配置真相为 `config/platform-db/postgres-nc01.yaml#node.swap`，声明总容量、主文件、扩展文件、`swappiness=10` 与 `/etc/sysctl.d/90-unidesk-swap.conf`。
- 新增通用 `platform-db postgres swap plan|apply --confirm|status [--job-id]`：一次 plan 披露磁盘余量、缺失容量、fstab、声明/内核容量、物理内存和 WebProbe swap 排除语义；apply 只提交远端异步 job。
- 执行 job `swap-20260716132336-3785364` 成功。声明容量为 68,719,476,736 bytes，内核 swap 为 68,719,468,544 bytes，可用 swap 约 54 GiB；主文件与扩展文件均为 0600、active 且写入 fstab，运行态和持久化 `swappiness` 均为 10，`policySync.inSync=true`。
- PostgreSQL 原入口在扩容后仍为 healthy，TLS 连接、服务、角色、数据库和备份状态未受影响。

## 物理内存与受控 GC

- 扩容后 `gc remote NC01 memory-distribution` 仍只以 `/proc/meminfo` 的 `MemAvailable` 判定，swap 未计入 4 GiB WebProbe 门槛。
- 一次 YAML 白名单 cgroup 回收 job `nc01-memory-pressure-1784201061-3790243` 成功执行两项，k3s 与 kubepods cgroup 合计下降约 692 MiB；并发工作负载回填导致 job 窗口 `MemAvailable` 从 3,848,298,496 降至 3,758,592,000 bytes，未稳定达到 4 GiB，因此停止重复 GC。
- 当前主要真实内存仍为 k3s-server、Kafka、Argo CD、Tempo 与持续增长的 AgentRun runner 子进程泄露。AgentRun zombie 从 130 增至 188，说明仅增加 `tini` 尚未覆盖 Bun 直接子进程回收；继续在既有 AgentRun runtime reliability 任务中修复，不以 swap 掩盖泄露。

## 验证

- `bun --check scripts/src/platform-db-host-swap.ts`
- `bun --check scripts/src/platform-db.ts`
- `bun scripts/cli.ts check --syntax-only`：11/11 通过。
- `bun scripts/cli.ts platform-db postgres swap plan --config config/platform-db/postgres-nc01.yaml`
- `bun scripts/cli.ts platform-db postgres swap status --config config/platform-db/postgres-nc01.yaml`
- `bun scripts/cli.ts platform-db postgres status --config config/platform-db/postgres-nc01.yaml`
- `git diff --check`

未运行 Vitest，未启动 WebProbe，未触碰 PK01 配置或运行面。
