全面自检 2026-10-06 07:48–08:05 (dlc / alaya)

触发: 用户 “全面自检”。范围 = 主机资源 + 服务层 + Hermes 记忆栈 + 记忆陈旧性 + 暴露面。 方法: 只读命令实测,无破坏动作。结论后附待用户拍板项。

归档位置: 本篇在 ops/(库名 a)。${KNOWLEDGE_ROOT}/ops/ 是 2026-10-03 之前的旧家, 已废弃(该目录非 git,最后改动停在 8-29)——初版曾误写在那里,同日搬到此处。

1. 主机资源 (实测)

  • uptime 1天2:09, load 0.98/1.10/1.17
  • 内存 15Gi total, 10Gi used, available 4.6Gi, free 170Mi
  • swap 31Gi total / 9.1Gi used → 全在 zram (zstd), /swap/swapfile 0B
  • zramctl: DISKSIZE 15.3G, DATA 8.7G, COMPR 2.8G → 真正的 OOM 风险是 zram 余量 (15.3-8.7=6.6G), 不是 free
  • PSI memory: some avg10=1.83 / full avg10=1.83 → full 与 some 几乎相等, 说明确实在真实回收, 不只是压缩吸收
  • vm.swappiness=150 (zram 系默认, RAM 已满时不要降)

RSS 按可执行文件聚合 (共享页有重复计, 仅作排序):

RSS进程数应用
3129 MB32chrome
1355 MB1llama-server (ollama 嵌入模型, 刚起 00:14)
1244 MB3hermes ×3 网关
928 MB14ChatGPT (electron)
827 MB18electron = /opt/QQ
749 MB8Discord
637 MB27postgres (gbrain + hindsight 两实例)
363 MB2opencode
254 MB12WeChatAppEx

swap 大户: hindsight-api 906MB / openviking 545MB / hermes 334MB / alens 285MB。

2. 服务层

  • failed units: 0 个 (user + system 都干净)
  • 常驻 Hermes: alaya 1.66G(swap 119MB) / manas 685M(swap 1.43G, peak 曾 2.0G) / soma 294M → 每个都有 MemoryHigh=2147483648 drop-in
  • alaya 网关子进程: 10 个 hermes-studio-mcp (合计 89MB) + mcp_death_supervisor
  • ollama 1.06G(peak 3.5G) / openviking 110M(swap 545MB) / gbrain 83M / alens 204M
  • 三个网关都 active+enabled, 无休眠 profile

3. 记忆栈

  • built-in: MEMORY.md 2121/2200, USER.md 1036/1375 — 都在限额内, 但 MEMORY 96% 已无余量
  • provider: alaya=openviking ✓ / manas=hindsight ✓ / soma=gbrain ✓, 三个都 available ✓
  • openviking 健康: {"status":"ok","healthy":true,"version":"0.4.20","auth_mode":"dev"}
  • gbrain /health = 200 (bun ${HOME}/.bun/bin/gbrain, 注意 gbrain 不在 PATH)
  • ov.conf: 本地 bge-small-zh-v1.5-f16 (512 维) + ollama ov_intent_analysis_sft:v7_q8
  • 存储: ~/.openviking/data 1.7G, ~/.pg0 232M
  • state.db 51MB / 23 sessions
  • cron: 2 个任务 (A2A 观测快照 6h、clash-verge AUR 2h), 都 ok
  • MCP: 10 个 server 全 enabled (4× hermes-studio + skillsmp + 5× cloudflare)
  • curator: 46 次后台复盘, .curator_backups/blobs 59KB

4. 陈旧性修复 (已做, 有回执)

MEMORY/USER 里 6 条路径与状态已实测为假, 已改写并备份: memories/*.md.bak-20261006-0752

  1. 知识库 /run/media/yunlu/data/data/hermes 不存在 (根盘已改挂 {KNOWLEDGE_ROOT}(2.2M, ops/ 有 12 篇), 个人库${DATA_ROOT}/ku/yunlu` (871M)
  2. ku/hermes-vault 2.3G 备份 已不存在 (只剩 ${DATA_ROOT}/.Trash-1000 里 12K 空壳)
  3. “本机无站点工作副本” 错 → ${HOME}/905527 是 git 仓库, origin=yunlux/905527, hermmes-site 跑它的 server.py
  4. “soma/mano 休眠, root gateway 也在” 错 → 三网关全常驻, 无 root gateway
  5. provider 现状全变 → alaya/soma=opencode-go/space-bunny-free, manas=xiaomi-mimo/mimo-v2.6-flash ⚠️ 已被当日更晚的变更推翻:space-bunny-free 改名 space-bunny,alaya/soma 三 profile 统一改为 deepseek-v4.1-flash。详见 provider-free-only-and-go(含 -free 模型不给长跑服务用的复盘)
  6. “manas=nous / api_key 明文在 manas/config.yaml” → manas 已换 xiaomi-mimo, 该条作废

写回结果: MEMORY 2058/2200, USER 970/1375。

5. 暴露面 (待拍板)

LAN ${LANIP} 实测可连: 9900/9901/9902 (Hermes 网关 API) 全部绑 0.0.0.0。 nft INPUT policy accept, ufw inactive, firewalld inactive → 无过滤。 另外 88-93 (portal.lan)、8000 (alens serve)、100/1716 (caddy/kdeconnect) 同样 0.0.0.0。

这与 USER 记录的隐私偏好 (web 端口只开局域网/不绑外部) 有张力: 这些是局域网暴露而非公网, 但 Hermes API 无鉴权面。

6. 反复告警 (每轮烧 token)

  • AGENTS.md TRUNCATED: 33126 chars exceeds 32000 — ~/.hermes/hermes-agent/AGENTS.md, 最近一次 10-06 05:08
  • Stored system prompt ... is null; rebuilding from scratch — session 20260927_150009_361b6470, 影响 prefix cache
  • Discord discord_websocket_health_stale: socket_closed fatal ×270, 近 24h 34 次, 05:45/07:01/07:36 各一次 → 网关被重启 3 次; 直连与走代理都 200, 判定为 WebSocket 心跳问题而非网络封锁
  • nous step-3.7-flash HTTP 429 fair-share → 重试 600s
  • alaya security.redact_secrets: false → API key 可能明文进日志/会话
  • sshd PasswordAuthentication yes (无 sshd_config.d 覆盖)

7. 磁盘

  • / 350G 用 217G (63%)
  • ${DATA_ROOT} 1.3T 用 869G (66%) · /mnt/e 932G 用 731G (79%) · /mnt/w 150G 用 128G (85%)
  • ~/.cache 22G: uv 8.6G(可删) / alens 3.6G(应用状态) / chrome 1.9G / codex-runtimes 1.8G / huggingface 1.7G(勿删, ollama 依赖) / ms-playwright 1.3G / paru 289M / npm 488M

待用户拍板

  1. 9900/9901/9902 改绑 ${LOCALIP} (一行 ExecStart/config)
  2. alaya redact_secrets 开回 true
  3. sshd PasswordAuthentication no
  4. hermes-agent/AGENTS.md 移出 session cwd 扫描树, 或调大 context_file_max_chars
  5. 清 ~/.cache/uv (8.6G, 可重新下载)
  6. 三个网关折成 hermes gateway migrate --multiplex (省 ~1.5G)
  7. manas 网关 swap 1.43G — 重启即可回收

2026-10-09 Codex 审阅说明

zram 的 DISKSIZE 是逻辑容量,DATA 是原始未压缩数据量;二者相减的 6.6 GB 不是可用物理内存或 OOM 边界。物理占用应看 MEM-USED/mem_used_total,压缩率与元数据开销也会变化。PSI 的 some/full avg10 是资源停顿比例,不能仅凭这一项认定具体回收原因。MemoryHigh 触发节流与回收压力,MemoryMax 是硬限制,可能触发组内 OOM;是否发生须查看 memory.events 与时间窗口。一次重启释放 swap 不保证持续低占用或没有泄漏。

此页为 10 月 6 日自检快照;HTTP 200 不证明 Discord WebSocket 心跳或所有链路正常,INPUT accept 也不能排除其他防火墙链与上游策略。Hugging Face 缓存不是所有 Ollama 模型的必需依赖,两者存储路径及具体模型使用应分别确认。

核验依据:Linux zram;Linux PSI;Linux cgroup v2。