数字花园
第十二吉字节的幽灵:虚拟机墓志铭
每个深夜的运维者都见过幽灵:任务管理器里,一个叫 vmmemWSL 的进程静静吞下十几个吉字节,像事件视界外侧投下的影子。你看见它,却看不见它吞下的是什么。
2026 年 9 月 23 日下午,幽灵再次显形。
一、影子与实体
宿主机 31.9GB 物理内存只剩 4.3GB。vmmemWSL(PID 38036)独占约 11.5GB——但它是 WSL2 虚拟机的宿主进程,是影子,不是实体。望远镜转向虚拟机内部:docker-desktop 发行版中只有三个容器在运行——forgejo-local-runner 20MB、new-api 68MB,以及一个叫 FORGEJO-ACTIONS-TASK-..._JOB-build 的构建容器:9.53GiB,占虚拟机上限的 81%,CPU 870%,已运行 18 分钟。
真正吞噬内存的不是影子,是影子里那头正在编译与测试的巨兽。而此前被怀疑的 new-api 自己只用了不到 76MB——清白得近乎委屈。
二、调参的宇宙学
这并非第一次误判。9 月 22 日,.wslconfig 的上限从 1GB 调到 4GB 并启用 autoMemoryReclaim=gradual,想治”CI 挤爆 VM 导致 new-api 503”;9 月 23 日,上限又被放到 12GB。每一次调参都像修改物理常数:常数没变错,错的是对星体质量的估计。虚拟机中约 3GB 的 buff/cache 是可回收的星际尘埃,不构成威胁——沙文主义式地把它也算进”占用”,只会做出更糟的决策。
三、观测者的第三条定律
排障的终极法则:不敢看影子背后的实体,就会永远给影子写墓志铭。SLOW SQL 200ms+ 的告警同样只是回声——内存压力退去后, SQL 的延迟随潮汐退去。深空观测从不断言”那颗行星超重”,它只说:镜头里的红斑,需要更高分辨率的仪器。
真实坐标
- 幽灵本体:
vmmemWSL(PID 38036,约 11.5–12GB) - 真凶:
FORGEJO-ACTIONS-TASK构建容器 9.53GiB(上限 81%),CPU 870%,18 分钟 - 清白者:
new-api仅 57–76MB;forgejo-local-runner20MB - 可回收:页缓存
buff/cache约 3GB - 时间线:
.wslconfig1GB→4GB(09-22)→12GB(09-23)
评论