Skip to content

Commit 0eacaf7

Browse files
committed
README: chart the first production soak
Section 12.5: both soak arms from the arena's own NOTICE lines - the LB breathing through a real traffic cycle including the honest partial shrink, and the gateway growing from a deliberate 8 MB / 2 MB start. Zero refusals, zero GROW-BLOCKED, all corruption counters zero.
1 parent 667af85 commit 0eacaf7

2 files changed

Lines changed: 90 additions & 0 deletions

File tree

‎README.md‎

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -724,6 +724,51 @@ Exhaustion growth + conservative built-in shrink (4 quiet intervals per
724724
granule, never below `-m 256`). No proactive behaviour, no config
725725
surface at all.
726726

727+
### 12.5 The first soak, charted
728+
729+
Two nodes, first 14 hours on v3 (2026-08-14/15), every point taken from
730+
the arena's own grow/shrink NOTICE lines. The LB ran the section 12.2
731+
recipe untouched; the gateway was deliberately re-cut mid-soak to a
732+
near-empty start (`-m 8:512 -M 2:32`) to make growth earn everything.
733+
734+
```mermaid
735+
xychart-beta
736+
title "LB .250: committed MB (top line shm, flat line pkg)"
737+
x-axis ["23:49 boot", "23:59", "00:09", "08:19", "10:09", "14:00"]
738+
y-axis "committed MB" 0 --> 70
739+
line [64, 48, 32, 48, 34, 34]
740+
line [16, 16, 16, 16, 16, 16]
741+
```
742+
743+
*The 12.2 config doing its job unattended: idle 64 shrinks to the 32
744+
floor within 20 minutes of boot, morning traffic grows it back to 48,
745+
and the after-peak shrink releases only what is genuinely empty —
746+
committed lands on 34, not 32, because 2 MB of the growth still holds a
747+
live allocation ("7 pages released; 2 MB of growth still held"). pkg
748+
never moved on any of the 28 workers. Changes are instantaneous steps;
749+
the slopes are an artifact of the event-spaced axis.*
750+
751+
```mermaid
752+
xychart-beta
753+
title "GW .244: committed MB (shm; pkg typical; pkg 3 grown workers)"
754+
x-axis ["23:50 boot", "00:10", "00:30", "00:57 restart", "01:17 re-cut", "01:19", "14:00"]
755+
y-axis "committed MB" 0 --> 70
756+
line [64, 48, 32, 64, 8, 24, 24]
757+
line [16, 16, 16, 16, 2, 2, 2]
758+
line [16, 16, 16, 16, 2, 18, 18]
759+
```
760+
761+
*The adversarial arm. First boot (`-m 64`) runs the predicted shrink
762+
train to 32; a restart resets to 64; then the re-cut starts shm at
763+
**8 MB** and per-worker pkg at **2 MB**. Demand pulls shm to 24 within
764+
two minutes and exactly three of 54 workers grow their pkg to 18 —
765+
the other 51 stay at the 2 MB floor. Twelve hours of steady state
766+
followed.*
767+
768+
Both nodes, the whole window: `grow_refused` 0, `grow_blocked` 0,
769+
corruption counters 0, tier-1 hugetlb throughout, and the
770+
`E_CORE_SHM_GROW_BLOCKED` event never fired.
771+
727772
---
728773

729774
## 13. Monitoring and alerting

‎mem/README.hg_malloc_v3.md‎

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -718,6 +718,51 @@ Exhaustion growth + conservative built-in shrink (4 quiet intervals per
718718
granule, never below `-m 256`). No proactive behaviour, no config
719719
surface at all.
720720

721+
### 12.5 The first soak, charted
722+
723+
Two nodes, first 14 hours on v3 (2026-08-14/15), every point taken from
724+
the arena's own grow/shrink NOTICE lines. The LB ran the section 12.2
725+
recipe untouched; the gateway was deliberately re-cut mid-soak to a
726+
near-empty start (`-m 8:512 -M 2:32`) to make growth earn everything.
727+
728+
```mermaid
729+
xychart-beta
730+
title "LB .250: committed MB (top line shm, flat line pkg)"
731+
x-axis ["23:49 boot", "23:59", "00:09", "08:19", "10:09", "14:00"]
732+
y-axis "committed MB" 0 --> 70
733+
line [64, 48, 32, 48, 34, 34]
734+
line [16, 16, 16, 16, 16, 16]
735+
```
736+
737+
*The 12.2 config doing its job unattended: idle 64 shrinks to the 32
738+
floor within 20 minutes of boot, morning traffic grows it back to 48,
739+
and the after-peak shrink releases only what is genuinely empty —
740+
committed lands on 34, not 32, because 2 MB of the growth still holds a
741+
live allocation ("7 pages released; 2 MB of growth still held"). pkg
742+
never moved on any of the 28 workers. Changes are instantaneous steps;
743+
the slopes are an artifact of the event-spaced axis.*
744+
745+
```mermaid
746+
xychart-beta
747+
title "GW .244: committed MB (shm; pkg typical; pkg 3 grown workers)"
748+
x-axis ["23:50 boot", "00:10", "00:30", "00:57 restart", "01:17 re-cut", "01:19", "14:00"]
749+
y-axis "committed MB" 0 --> 70
750+
line [64, 48, 32, 64, 8, 24, 24]
751+
line [16, 16, 16, 16, 2, 2, 2]
752+
line [16, 16, 16, 16, 2, 18, 18]
753+
```
754+
755+
*The adversarial arm. First boot (`-m 64`) runs the predicted shrink
756+
train to 32; a restart resets to 64; then the re-cut starts shm at
757+
**8 MB** and per-worker pkg at **2 MB**. Demand pulls shm to 24 within
758+
two minutes and exactly three of 54 workers grow their pkg to 18 —
759+
the other 51 stay at the 2 MB floor. Twelve hours of steady state
760+
followed.*
761+
762+
Both nodes, the whole window: `grow_refused` 0, `grow_blocked` 0,
763+
corruption counters 0, tier-1 hugetlb throughout, and the
764+
`E_CORE_SHM_GROW_BLOCKED` event never fired.
765+
721766
---
722767

723768
## 13. Monitoring and alerting

0 commit comments

Comments
 (0)