A deploy that invalidates the opcode cache and the application cache simultaneously, and a first minute that is measurably worse.
# after the symlink switch, before the health check passes
for url in $(cat config/warm-urls.txt); do
curl -so /dev/null -H 'X-Warm: 1' "http://localhost$url" &
done
wait
# 14 URLs, 4 seconds, and it primes both the opcode
# cache and the application caches those routes read.
Warming before the health check passes is the ordering that matters — a health check that succeeds on a cold process means traffic arrives during the expensive minute. Fourteen URLs chosen from the access log covers the paths that matter, and trying to warm everything turns a four-second step into two minutes.