采样第二组对照:连「写大文件」也不是充分因(本轮写了 135KB+146KB,内存峰值仅 260MB 且被 GC 收回)⇒ 定性修正为「高振幅锯齿 + 回收时机随机」;三次观测并排入库

This commit is contained in:
WorkBuddy committed 2026-10-09 06:44:31 +08:00
1 parent add273fc22
commit b1986695b3
4 files changed
+56 -2

No files matched your search

+22 -1
View File
@@ -23,7 +23,11 @@
**结论一**:事件速率不是充分因 —— 平稳组的事件速率**不比暴涨组低**,内存却稳在 200MB 以内。
**结论二**:暴涨组的独有动作是**一次写入 133KB 大文件**(`ui/mcn-workbench.html`,133459 B),且当时连着出现 5 条 `[ResourceReport] artifact observed`。**这是当前唯一可疑的触发点。**
**结论二(已在本组第二轮观察后被削弱,见下)**:暴涨组的独有动作是**一次写入 133KB 大文件**(`ui/mcn-workbench.html`,133459 B),且当时连着出现 5 条 `[ResourceReport] artifact observed`。当时以为「大文件写入」是唯一可疑触发点。
**结论三(2026-10-09 06:43 追加,推翻结论二)**:第二轮对照里,那个会话**同样写了大文件**(`mcn-workbench.html` 从 133459 B 改到 135041 B,另有 146341 B 的 dom dump),内存峰值却只有 **260MB**,还被 GC 收回了 64MB。⇒ **连"写大文件"也不是充分因。**
**结论四(当前定性)**:三次观测的峰值分别是 **609MB(收回)/957MB(未收回)/260MB(收回)**,差异看起来更像**随机振幅**。所以问题不是"哪个动作撑爆它",而是 **daemon 内存本来就在高振幅锯齿,能不能收回取决于 GC 时机;957MB 那次是"没赶上"的尾部事件**。
---
@@ -90,3 +94,20 @@ grep "DaemonMemWatch" <logs>/daemon.log | sed -E 's/.*timestamp":"([^"]+)".*heap
- 事件:`received` 从 `420014`(06:35)涨到 `452194`(06:37),增量 `+20758` / `+11422`。
- 该时段会话动作:读旧工具目录、建 `ui/_tools`/`ui/_scratch`(06:37),**尚未写大文件**。
- 判定:**内存未失控**。与暴涨组形成有效对照 ⇒ 见第一节「结论一」。
### 第 2 组 · 2026-10-09 06:38:38–06:43:38(同一会话,20 秒一条采样)
- daemon:`73936`。数据源:`tmp/mem-watch-20261009.csv`。
- 内存全程:`191 → 193 → 260 → 196 → 205MB`(rss `450 → 501 → 524 → 443 → 450MB`)。
- 🔴 **`06:39:58` 涨到 260MB,`06:40:58` 掉回 196MB** —— **GC 收回 64MB**,与暴涨组第一轮(609→132)同型。
- 事件:`received` 从 `452194`(06:38)涨到 `494281`(06:43),**5 分钟 +42087,平均 8417/分钟**。
- 🔴 **该时段会话确实写了大文件**:`ui/mcn-workbench.html` 由 133459 B 改到 **135041 B**(06:39),另产出 **146341 B** 的 `ui/_scratch/p1-1440-dom.html`(06:36)与 133459 B 的 `.bak-before-gatefix.html`(06:38)。
- 判定:**写了同量级的大文件,内存却只到 260MB 且被收回** ⇒ 第一节「结论二」被推翻,改按「结论三 / 结论四」定性。
### 三次观测并排(当前全部数据点)
- 第 1 次 · daemon `53940`:峰值 **609MB**,**被 GC 收回**(→132MB);随后又涨到 **957MB**,**未收回,被杀**。
- 第 2 次 · daemon `73936`(06:32–06:38):峰值 **202MB**,锯齿未失控。
- 第 3 次 · daemon `73936`(06:38–06:43):峰值 **260MB**,**被 GC 收回**(→196MB),期间写了大文件。
**汇总判定**:目前**没有任何单一动作能解释 957MB 那次的失控**。三次的峰值差异更像振幅随机;能稳定观察到的只有"涨上去、GC 再收回"这个锯齿本身。**要继续找因,唯一可靠的办法是堆快照**(看增长集中在哪类对象),而不是再攒曲线点。