---
title: 运行内存账本与优化清单
subtitle: 物理 1708MB · 可用 480MB · 网关基线 597MB，重启无效
source: /proc/meminfo · smaps_rollup · gateway.log · hy-memory db
cols: 2
---

## A 结论
```callout warn 可用 480MB，缓存不能变成可用内存
物理内存 1708MB，已用 1227MB，可用 480MB。
文件缓存 581MB 已经算在可用里，清缓存只让 free 数字变大。
网关 597MB 是结构性基线。13:43 刚重启，14:24 又到 577MB。
真正能压的只有进程对象，合计 150–250MB，且都要付功能代价。
```

```kv cols=3
物理内存: 1708 MB
已用: 1227 MB
可用: 480 MB
文件缓存: 581 MB
Swap 已用: 571 MB
内存压力: 0.18 %
```

## B 进程账本
| 进程 | RSS | 占比 | 可动性 |
|---|---|---|---|
| hermes 网关 | 597 MB | 35.0 % | 结构性，只能减功能 |
| hy-memory | 237 MB | 13.9 % | 可压缩，需重建索引 |
| 飞书卡片 runner | 92 MB | 5.4 % | 可关，损失卡片 |
| mihomo | 45 MB | 2.6 % | 必需 |
| caddy | 24 MB | 1.4 % | 必需 |
| 系统与内核 slab | 73 MB | 4.3 % | 多数不可回收 |
| 合计 | 1068 MB | 62.6 % | 缺口为页表与共享内存 |

hy-memory 另有 148MB 在 swap 里，工作集约 385MB。
它 13:40 触发过一次记忆预取超时 8 秒，就是换入延迟。

## C 网关 597MB 拆解
```kv cols=2
最大单块匿名映射: 145 MB
Python heap 主区: 112 MB
库文件映射合计: 83 MB
线程数: 51
打开文件描述符: 72
state.db 打开句柄: 9
```

匿名内存约 520MB，是 Python 运行时对象。
不是数据库缓存：state.db 的 mmap_size 为 0，每连接缓存仅 2MB。
也不是库太重：Python 与依赖映射合计只有 83MB。
所以只能减对象，也就是减插件、减工具、减会话。

```callout info 插件与技能现状
启用插件 7 个：disk-cleanup、feishu-card、hfc 依赖、hy-memory、mcp-serve、feishu、web。
技能共 227 个，已禁用 82 个，仍有 145 个参与索引。
```

## D 可优化项 {span=2}
| 措施 | 预期效果 | 代价 | 风险 | 优先级 |
|---|---|---|---|---|
| 重建 hy-memory 向量集合 | 省 40–70 MB | 检索短暂变慢 | 中，先备份 | P1 |
| 清 8 月 pipeline_logs 8297 条 | 省 5–10 MB | 无 | 低 | P1 |
| 关 disk-cleanup / mcp-serve | 省 20–40 MB | 失去对应功能 | 低，需重启 | P1 |
| 飞书卡片 runner 改纯文本 | 省 92 MB | 失去卡片 | 中，体验降级 | P2 |
| state.db VACUUM | 磁盘省大于 100 MB | 需停网关 | 中，内存几乎不变 | P2 |
| 关 at-spi / polkitd | 省 5 MB | 无 | 可忽略 | P3 |
| 清 inode 与 dentry 缓存 | free 增 30–45 MB | 不增可用内存 | 低，IO 抖动 | 可不做 |
| agent_cache 阈值 500→300 | 仅多会话生效 | 冷启动变慢 | 低，当前单会话无效 | 可不做 |

hy-memory 存了 2946 条向量却占 106MB，平均 36KB 一条。
bge-m3 的 1024 维向量只需 4KB，超出部分是索引与冗余。
这是全表里唯一能省两位数、又不砍功能的项。

```callout err 不要做 swapoff
swap 已用 571MB，可用内存只有 480MB。
执行 swapoff 会把这 571MB 拉回物理内存，直接触发 OOM。
当前压力 0.18%，swap 抖动不构成问题。
```

## E 执行顺序
```timeline
已确认 | 网关基线 | 597MB 属结构性，重启无效
P1 | 配置瘦身 | 关两个插件，清旧日志，省 25–50MB
P2 | 数据重建 | 备份后重建向量集合，省 40–70MB
P3 | 功能取舍 | 飞书卡片改纯文本，省 92MB
```
