diff --git a/docs/content/2026-news.md b/docs/content/2026-news.md index 009d4a16..9786a1e8 100644 --- a/docs/content/2026-news.md +++ b/docs/content/2026-news.md @@ -16,6 +16,15 @@ - Lifecycle hooks: `on_dirty_starting`, `dirty_post_fork`, `dirty_worker_init`, `dirty_worker_exit` +- **Per-App Worker Allocation for Dirty Arbiters**: Control how many dirty workers + load each app for memory optimization with heavy models + ([PR #3473](https://github.com/benoitc/gunicorn/pull/3473)) + - Set `workers` class attribute on DirtyApp (e.g., `workers = 2`) + - Or use config format `module:class:N` (e.g., `myapp:HeavyModel:2`) + - Requests automatically routed to workers with the target app + - New exception `DirtyNoWorkersAvailableError` for graceful error handling + - Example: 8 workers × 10GB model = 80GB → with `workers=2`: 20GB (75% savings) + - **HTTP/2 Support (Beta)**: Native HTTP/2 (RFC 7540) support for improved performance with modern clients ([PR #3468](https://github.com/benoitc/gunicorn/pull/3468)) - Multiplexed streams over a single connection