Context
The shipped runtime configuration carries legacy defaults worth revisiting:
- php-fpm pool undersized:
pm.max_children = 20 caps concurrency at 20 requests
per pod while the memory limit would fit ~60 workers; spikes ≥20 → 502s from nginx
access.log = /dev/null: FPM access log (CPU time, memory peak per request) is
thrown away; should go to stdout with a useful format + slowlog to stderr
- opcache
interned_strings_buffer = 24 is small for a Symfony/Shopsys codebase
(recommend 64) — memory_consumption review included; **** optional JIT for CLI/cron
- redis
maxmemory-policy volatile-lru evicts only TTL'd keys — keys without TTL
can push redis to OOM errors; decide volatile-lru (and guarantee TTLs app-side) vs allkeys-lru
- ****
maxmemory 2200mb vs pod limit 2500Mi is intentional headroom — parametrize
maxmemory from the values (derive from redis.resources.limits.memory) or document
- **** redis slowlog tuning (
slowlog-log-slower-than 5000, slowlog-max-len 128)
Proposal
All of these live in values already (webserver.phpFpm.config, .opcacheConfig,
redis.config) — change the shipped defaults, with load-test/metrics validation for the
php-fpm pool sizing (correlates with the memory request change in #35).
Tasks
Related: #35
Context
The shipped runtime configuration carries legacy defaults worth revisiting:
pm.max_children = 20caps concurrency at 20 requestsper pod while the memory limit would fit ~60 workers; spikes ≥20 → 502s from nginx
access.log = /dev/null: FPM access log (CPU time, memory peak per request) isthrown away; should go to stdout with a useful format +
slowlogto stderrinterned_strings_buffer = 24is small for a Symfony/Shopsys codebase(recommend 64) — memory_consumption review included; **** optional JIT for CLI/cron
maxmemory-policy volatile-lruevicts only TTL'd keys — keys without TTLcan push redis to OOM errors; decide volatile-lru (and guarantee TTLs app-side) vs allkeys-lru
maxmemory 2200mbvs pod limit 2500Mi is intentional headroom — parametrizemaxmemory from the values (derive from
redis.resources.limits.memory) or documentslowlog-log-slower-than 5000,slowlog-max-len 128)Proposal
All of these live in values already (
webserver.phpFpm.config,.opcacheConfig,redis.config) — change the shipped defaults, with load-test/metrics validation for thephp-fpm pool sizing (correlates with the memory request change in #35).
Tasks
Related: #35