OPcache y JIT en producción de PHP 8.3 — lo que de verdad mueve la aguja
19 de mayo de 2026 · 1 min de lectura · por Sudhanshu K.
El OPcache de PHP 8.3 es uno de los cambios de configuración de mayor ROI en toda la stack. La config por defecto es dev-friendly (revalidación frecuente, memoria modesta). La config correcta para producción es un cambio pequeño que recorta rutinariamente el uso de CPU en un 30-40 % en cargas Laravel y WordPress. JIT es el hermano más turbio — a veces una victoria clara, a veces neutro, ocasionalmente una regresión.
Esto es lo que entregamos y por qué.
La config de producción
opcache.enable=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=32
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0
opcache.revalidate_freq=0
opcache.save_comments=1
opcache.fast_shutdown=1
opcache.jit_buffer_size=128M
opcache.jit=tracingEl flag de mayor impacto es validate_timestamps=0. Le dice a OPcache que nunca compruebe si un fichero ha cambiado — simplemente confía en lo que tiene en caché. Trade-off: los despliegues requieren un opcache_reset() explícito o un reload de PHP-FPM, que tu pipeline de despliegue debería estar haciendo de todas formas.
El artículo completo cubre:
- Por qué
validate_timestamps=0pertenece a cada config de producción - Dimensionar
memory_consumptionymax_accelerated_filespara tu codebase - Modos JIT (
function,tracing) — y las cargas donde cada uno ayuda - Cuándo JIT de verdad hace daño (PHP-como-templating, cargas mayormente I/O)
- Leer la salida de
opcache_get_status()para verificar que de verdad hace su trabajo - Estrategias de cold-start para containers efímeros (preloading vs lazy)
Entregamos esta configuración en cada instalación PHP gestionada.
Artículo completo disponible
Leer el artículo completo