The OPcache file cache, for when shared memory resets

OPcache keeps compiled bytecode in shared memory, which is empty after every restart — so the first requests following a deploy or an FPM reload each pay full compilation, exactly when traffic has nowhere else to go.

opcache.file_cache=/var/cache/opcache
opcache.file_cache_only=0
opcache.validate_timestamps=1

The file cache is a second tier on disk that survives a restart, so a cold process reads bytecode instead of recompiling. It is slower than shared memory and considerably faster than parsing. Warming the cache with a few requests before putting a release into rotation is the other half of the answer, and the two together are what stop a deploy showing up as a latency spike on the graph.