Files
felhom.eu/documentation/audits/sizing-2026-10-13/evidence/b2/summary.json
T
admin c885b5acf4 Audit: what a Felhom box needs — floor, 64 apps' memory and CPU, power (N100 bench); R-993..R-995; R-231 due check read green
Measured on demo-felhom (N100, 16 GB): 61 apps deployed and removed through the
product, sampled every 5 s; heavy apps with one real action (Immich 200 photos,
Jellyfin transcode, Paperless OCR, Nextcloud 500 MB, ...). sizing.json for the
estimator (tools/build_sizing.py), SIZING.md with the proposed minimum machine,
METHOD.md. Power is RAPL CPU-package only (no meter). R-993 asks the operator to
approve the minimum machine; R-994 lists catalog limits/requests that are too low;
R-995 records leftover unnamed volumes after removal. R-231's dated check measured:
dooplex-backup.service success, journal green.
2026-10-13 13:23:51 +02:00

293 lines
6.2 KiB
JSON

{
"apps": {
"felhom-controller": {
"samples": 240,
"rest_samples": 179,
"mem_rest_avg_mb": 38,
"mem_rest_p95_mb": 39,
"mem_peak_used_mb": 69,
"mem_peak_anon_mb": 61,
"mem_rest_anon_avg_mb": 32,
"kernel_memory_peak_mb": 153,
"oom_kills": 0,
"cpu_rest_avg_pct": 0.26,
"cpu_peak_1m_pct": 1.4,
"cpu_peak_5s_pct": 7.3,
"work_seconds": 1203,
"containers": {
"felhom-controller": {
"peak_used_mb": 69,
"peak_anon_mb": 61,
"limit_mb": null
}
}
},
"cloudflared": {
"samples": 240,
"rest_samples": 179,
"mem_rest_avg_mb": 40,
"mem_rest_p95_mb": 40,
"mem_peak_used_mb": 40,
"mem_peak_anon_mb": 16,
"mem_rest_anon_avg_mb": 16,
"kernel_memory_peak_mb": 68,
"oom_kills": 0,
"cpu_rest_avg_pct": 0.11,
"cpu_peak_1m_pct": 0.1,
"cpu_peak_5s_pct": 0.4,
"work_seconds": 1203,
"containers": {
"cloudflared": {
"peak_used_mb": 40,
"peak_anon_mb": 16,
"limit_mb": null
}
}
},
"filebrowser": {
"samples": 240,
"rest_samples": 179,
"mem_rest_avg_mb": 20,
"mem_rest_p95_mb": 20,
"mem_peak_used_mb": 24,
"mem_peak_anon_mb": 21,
"mem_rest_anon_avg_mb": 18,
"kernel_memory_peak_mb": 101,
"oom_kills": 0,
"cpu_rest_avg_pct": 0.03,
"cpu_peak_1m_pct": 0.0,
"cpu_peak_5s_pct": 0.2,
"work_seconds": 1203,
"containers": {
"filebrowser": {
"peak_used_mb": 24,
"peak_anon_mb": 21,
"limit_mb": 256
}
}
},
"traefik": {
"samples": 240,
"rest_samples": 179,
"mem_rest_avg_mb": 84,
"mem_rest_p95_mb": 87,
"mem_peak_used_mb": 90,
"mem_peak_anon_mb": 23,
"mem_rest_anon_avg_mb": 18,
"kernel_memory_peak_mb": 124,
"oom_kills": 0,
"cpu_rest_avg_pct": 0.01,
"cpu_peak_1m_pct": 0.4,
"cpu_peak_5s_pct": 1.3,
"work_seconds": 1203,
"containers": {
"traefik": {
"peak_used_mb": 90,
"peak_anon_mb": 23,
"limit_mb": null
}
}
},
"opengist": {
"samples": 240,
"rest_samples": 179,
"mem_rest_avg_mb": 23,
"mem_rest_p95_mb": 23,
"mem_peak_used_mb": 27,
"mem_peak_anon_mb": 26,
"mem_rest_anon_avg_mb": 23,
"kernel_memory_peak_mb": 28,
"oom_kills": 0,
"cpu_rest_avg_pct": 0.03,
"cpu_peak_1m_pct": 0.0,
"cpu_peak_5s_pct": 0.3,
"work_seconds": 1203,
"containers": {
"opengist": {
"peak_used_mb": 27,
"peak_anon_mb": 26,
"limit_mb": 128
}
}
},
"karakeep": {
"samples": 228,
"rest_samples": 179,
"mem_rest_avg_mb": 361,
"mem_rest_p95_mb": 364,
"mem_peak_used_mb": 640,
"mem_peak_anon_mb": 611,
"mem_rest_anon_avg_mb": 341,
"kernel_memory_peak_mb": 662,
"oom_kills": 0,
"cpu_rest_avg_pct": 0.6,
"cpu_peak_1m_pct": 2.9,
"cpu_peak_5s_pct": 28.3,
"work_seconds": 1142,
"containers": {
"karakeep-chrome": {
"peak_used_mb": 40,
"peak_anon_mb": 35,
"limit_mb": 768
},
"karakeep": {
"peak_used_mb": 587,
"peak_anon_mb": 564,
"limit_mb": 1536
},
"karakeep-meilisearch": {
"peak_used_mb": 14,
"peak_anon_mb": 12,
"limit_mb": 512
}
}
},
"bookstack": {
"samples": 216,
"rest_samples": 179,
"mem_rest_avg_mb": 163,
"mem_rest_p95_mb": 163,
"mem_peak_used_mb": 195,
"mem_peak_anon_mb": 161,
"mem_rest_anon_avg_mb": 129,
"kernel_memory_peak_mb": 219,
"oom_kills": 0,
"cpu_rest_avg_pct": 0.18,
"cpu_peak_1m_pct": 0.9,
"cpu_peak_5s_pct": 2.9,
"work_seconds": 1082,
"containers": {
"bookstack": {
"peak_used_mb": 80,
"peak_anon_mb": 49,
"limit_mb": 512
},
"bookstack-db": {
"peak_used_mb": 116,
"peak_anon_mb": 112,
"limit_mb": 256
}
}
},
"gokapi": {
"samples": 204,
"rest_samples": 179,
"mem_rest_avg_mb": 7,
"mem_rest_p95_mb": 7,
"mem_peak_used_mb": 7,
"mem_peak_anon_mb": 6,
"mem_rest_anon_avg_mb": 6,
"kernel_memory_peak_mb": 12,
"oom_kills": 0,
"cpu_rest_avg_pct": 0.03,
"cpu_peak_1m_pct": 0.0,
"cpu_peak_5s_pct": 0.2,
"work_seconds": 1021,
"containers": {
"gokapi": {
"peak_used_mb": 7,
"peak_anon_mb": 6,
"limit_mb": 128
}
}
},
"homebox": {
"samples": 198,
"rest_samples": 179,
"mem_rest_avg_mb": 17,
"mem_rest_p95_mb": 20,
"mem_peak_used_mb": 20,
"mem_peak_anon_mb": 19,
"mem_rest_anon_avg_mb": 15,
"kernel_memory_peak_mb": 27,
"oom_kills": 0,
"cpu_rest_avg_pct": 0.06,
"cpu_peak_1m_pct": 0.1,
"cpu_peak_5s_pct": 0.2,
"work_seconds": 991,
"containers": {
"homebox": {
"peak_used_mb": 20,
"peak_anon_mb": 19,
"limit_mb": 256
}
}
},
"homepage": {
"samples": 192,
"rest_samples": 179,
"mem_rest_avg_mb": 82,
"mem_rest_p95_mb": 82,
"mem_peak_used_mb": 83,
"mem_peak_anon_mb": 76,
"mem_rest_anon_avg_mb": 75,
"kernel_memory_peak_mb": 90,
"oom_kills": 0,
"cpu_rest_avg_pct": 0.03,
"cpu_peak_1m_pct": 0.0,
"cpu_peak_5s_pct": 0.4,
"work_seconds": 961,
"containers": {
"homepage": {
"peak_used_mb": 83,
"peak_anon_mb": 76,
"limit_mb": 256
}
}
},
"termix": {
"samples": 186,
"rest_samples": 179,
"mem_rest_avg_mb": 102,
"mem_rest_p95_mb": 114,
"mem_peak_used_mb": 117,
"mem_peak_anon_mb": 101,
"mem_rest_anon_avg_mb": 89,
"kernel_memory_peak_mb": 128,
"oom_kills": 0,
"cpu_rest_avg_pct": 0.04,
"cpu_peak_1m_pct": 0.1,
"cpu_peak_5s_pct": 0.4,
"work_seconds": 931,
"containers": {
"termix": {
"peak_used_mb": 117,
"peak_anon_mb": 101,
"limit_mb": 128
}
}
},
"wishlist": {
"samples": 180,
"rest_samples": 179,
"mem_rest_avg_mb": 119,
"mem_rest_p95_mb": 122,
"mem_peak_used_mb": 122,
"mem_peak_anon_mb": 115,
"mem_rest_anon_avg_mb": 112,
"kernel_memory_peak_mb": 288,
"oom_kills": 0,
"cpu_rest_avg_pct": 0.07,
"cpu_peak_1m_pct": 0.1,
"cpu_peak_5s_pct": 0.8,
"work_seconds": 900,
"containers": {
"wishlist": {
"peak_used_mb": 122,
"peak_anon_mb": 115,
"limit_mb": 512
}
}
}
},
"host": {
"host_mem_used_rest_avg_mb": 3362,
"host_mem_used_peak_mb": 3595,
"guest_mem_current_rest_avg_mb": 9443,
"guest_anon_rest_avg_mb": 1031,
"rapl_pkg_w_rest_avg": 4.41,
"rapl_pkg_w_peak_5s": 11.93,
"rapl_pkg_w_peak_1m": 8.98,
"pkg_temp_c_max": 58.0
}
}