Estimator: Immich peak 3,290 -> 3,983 MB from the 4,000-photo import (R-1147, operator yes 2026-10-18); Immich alone on 8 GB now 'does not fit'
gates / gates (push) Successful in 7m17s

Rebuilt sizing-data.json; data cache-bust v5; SIZING.md table and the pinned test cases moved
with it. Before/after: audits/day-2026-10-18/P6-before-after.md.
This commit is contained in:
2026-10-18 14:36:14 +02:00
parent 3332eb0919
commit 37cb83c166
23 changed files with 285 additions and 15 deletions
+3 -3
View File
@@ -108,8 +108,8 @@ class SizingWeb(unittest.TestCase):
cases = {
"household": (HOUSEHOLD, [N, T, W, W, W, W, W], 16, 12),
"household without immich": ([s for s in HOUSEHOLD if s != "immich"], [T, W, W, W, W, W, W], 12, 8), # 2026-10-14 HP raise: 2,731 x 1.5 = 4,096.5 > 4,096
"immich alone": (["immich"], [T, W, W, W, W, W, W], 12, 8),
"all 63": (self.all, [N, N, N, N, T, W, W], 48, 32), # 24 GB: guest 19,868 < peak 22,377 (22,333 before Prowlarr)
"immich alone": (["immich"], [N, W, W, W, W, W, W], 12, None), # 2026-10-18: Immich peak 3,983 (R-1147) → 4,453 > 4,096
"all 63": (self.all, [N, N, N, N, T, W, W], 48, 32), # 24 GB: guest 19,868 < peak 23,070 (22,377 before R-1147)
"nothing": ([], [W] * 7, 8, None),
}
for name, (sel, want, rec, tight) in cases.items():
@@ -140,7 +140,7 @@ class SizingWeb(unittest.TestCase):
self.assertGreaterEqual(dict(segs)["spare"], 0, name + ": spare negative")
# the household preset, by hand: peak 6,021 MiB; the bar holds 6,021 * 1.5 = 9,031.5 in the guest
well, segs = segments(self.d, HOUSEHOLD)
self.assertAlmostEqual(dict(segs)["spare"], 6021 * 0.5, delta=1)
self.assertAlmostEqual(dict(segs)["spare"], 6714 * 0.5, delta=1) # household peak 6,714 since R-1147 (6,021 before)
self.assertAlmostEqual(dict(segs)["base"], 4708, delta=1) # 4,096 for Proxmox + 612 MemTotal shortfall
def test_bar_never_below_the_smallest_named_box(self):