From c8865e018786ebafa39e0d30acfed0aeac231ed7 Mon Sep 17 00:00:00 2001 From: Simon Kuehn Date: Mon, 18 May 2026 09:02:34 +0000 Subject: [PATCH] fix: raise PHP-FPM pool to 30 workers to prevent SSE starvation SSE connections hold a worker for up to 90 s each; the default of 5 children meant the admin UI became unresponsive under normal use. Mount zzz-pool.conf (loaded after zz-docker.conf) to override only the pm.* settings without touching daemonize/listen. Co-Authored-By: Claude Sonnet 4.6 --- docker-compose.yml | 1 + docker/app/zz-fpm-pool.conf | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 docker/app/zz-fpm-pool.conf diff --git a/docker-compose.yml b/docker-compose.yml index a867af5..c8791f3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,6 +9,7 @@ services: volumes: - .:/var/www - ./docker/app/php.ini:/usr/local/etc/php/conf.d/app.ini:ro + - ./docker/app/zz-fpm-pool.conf:/usr/local/etc/php-fpm.d/zzz-pool.conf:ro depends_on: postgres: condition: service_healthy diff --git a/docker/app/zz-fpm-pool.conf b/docker/app/zz-fpm-pool.conf new file mode 100644 index 0000000..ca02cfc --- /dev/null +++ b/docker/app/zz-fpm-pool.conf @@ -0,0 +1,8 @@ +[www] +; SSE connections hold a worker for up to 90 s each — raise the pool ceiling +; so regular requests are not starved. +pm = dynamic +pm.max_children = 30 +pm.start_servers = 4 +pm.min_spare_servers = 2 +pm.max_spare_servers = 8