数字花园

第十二吉字节的幽灵:虚拟机墓志铭

2026-09-23 · 约 3 分钟 · WSL2 · Docker · Forgejo · 内存排障

每个深夜的运维者都见过幽灵:任务管理器里,一个叫 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 的延迟随潮汐退去。深空观测从不断言”那颗行星超重”,它只说:镜头里的红斑,需要更高分辨率的仪器。

真实坐标

评论

← 数字花园