Generated by Answer me with HTML 0.5.7 · 2026-10-23 11:05 · ★ Star on GitHub

你现在的内存相关设置

MALLOC 只写在一处,网关本体没吃到

source实测 .env · /proc/environ · systemd · 2026-10-23
一句话
  • MALLOC_ARENA_MAX=2 只写在 /root/.hermes/.env 第 79 行。
  • 生效的是 hy-memory 与工具子进程;网关本体没有。
  • 网关跑 glibc 默认,2 核最多开 16 个 arena。
A

谁吃到了 MALLOC 设置

进程 MALLOC_ARENA_MAX MALLOC_TRIM_THRESHOLD_ 说明
hy-memory server 2 65536 启动脚本从 .env 读
Hermes 工具子进程 2 65536 网关派生时注入
网关本体 无 无 01:30 启动,自行不带这两个键
caddy / mihomo 无 无 默认值运行
  • 网关自己的 environ 里查不到这两个键。
  • 也就是说 545 MB 里那 157 个匿名块,还按默认 16 个 arena 分配。
B

.env 里的内存相关设置

MALLOC_ARENA_MAX
2
MALLOC_TRIM_THRESHOLD_
65536
MEMORY_VECTOR_STORE
chroma
HY_MEMORY_MODE
pro
HY_MEMORY_WRITE_TURN_WINDOW
8
RECONCILE_ENABLED
false
  • RECONCILE_ENABLED 为 false,写入期不做 LLM 判重合并。
  • WRITE_TURN_WINDOW 设为 8 轮,减少写入次数。
  • 这两项是 09-27 调优时定的,与 MALLOC 同批。
C

C hy-memory 看门狗现状

项目 值
阈值 350 MB
冷却 20 分钟
累计重启 79 次
最近一次 353 MB → 90 MB
当前 RSS 159 MB,运行 15 分钟
当前 RSS159 / max 350 MB
今日重启max 2 次
  • 重启会把冷缓存清掉,代价是下次查询变慢。
  • 79 次累计说明这个阈值一直在起作用。
D

内核与 cgroup

glibc 版本
2.36
CPU
2 核
arena 默认上限
16 个
vm.swappiness
30
vm.overcommit_memory
0
vm.vfs_cache_pressure
200
swap
2 GB,已用 82 MB
cgroup 没有内存限额

hermes-gateway.service 的 memory.max 是 max,不是 900 MB。当前该 cgroup 用 686 MB,其中网关本体 545 MB,子进程约 140 MB。

  • 之前记的 900 MB 限额现在查不到,实际是不限。
  • 好处是跑重活不会被 OOM 打断。
  • 坏处是没有硬边界,只能靠肉眼看 free。