From 1878f6a9fa1fab43953711cc48d47f0188aa47b4 Mon Sep 17 00:00:00 2001 From: Sylvester Damgaard Date: Fri, 4 Sep 2026 14:50:22 +0200 Subject: [PATCH] docs: changelog and README for 3.1.0 (embedded fpm-tune autotuner) --- CHANGELOG.md | 23 +++++++++++++++++++++++ README.md | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2619094..bd4a12d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,29 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [3.1.0] - 2026-09-04 + +### Added + +- **A built-in runtime PHP-FPM autotuner.** Until now cbox-init sized php-fpm + only once, at boot, from a static workload profile, and never touched it again + as traffic changed. The new `global.fpm_tune` block embeds + [fpm-tune](https://github.com/cboxdk/fpm-tune): it measures live per-worker + memory (PSS, which does not double-count shared OPcache), sizes each pool on the + p95 hybrid, and in apply mode rewrites a pool drop-in and reloads php-fpm with + SIGUSR2 (a graceful reload, never a restart). Every change is validated against + a throwaway copy, written atomically, and rolled back if the master does not + come back. The boot calculator stays as the seed: it gives php-fpm a sane + `pm.max_children` before it starts, and the loop owns the number from there. It + runs as a background service tied to the serve lifecycle and is stopped before + php-fpm is drained on shutdown. Apply mode is the default; set `mode: advisory` + to observe and only recommend. See + [PHP-FPM Auto-Tuning](docs/configuration/php-fpm-autotune.md) and + `configs/examples/php-fpm-autotune.yaml`. A container integration test + (`make test-e2e-fpm-tune`, run in CI) exercises the whole chain: discover, + enable the status page, size, resize under load, and reload without changing the + master pid. + ## [3.0.0] - 2026-08-27 ### Added diff --git a/README.md b/README.md index c7b1033..ef1fb19 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Production-grade PID 1 process manager for Docker containers with Laravel-first - **PID 1 Process Manager** - Proper signal handling and zombie process reaping - **Multi-Process Orchestration** - Manage PHP-FPM, Nginx, Horizon, Reverb, and workers -- **PHP-FPM Auto-Tuning** - Intelligent worker calculation based on container limits +- **PHP-FPM Auto-Tuning** - Sizes `pm.max_children` at boot from container limits, and optionally keeps it right at runtime with a built-in [fpm-tune](https://github.com/cboxdk/fpm-tune) loop that measures live worker memory and reloads php-fpm (SIGUSR2, never a restart) - **Dependency Management** - DAG-based process startup ordering - **Health Monitoring** - TCP, HTTP, and exec-based health checks - **Scheduled Tasks** - Built-in cron-like scheduler