opcache statistics, and the restart that cost 400 ms

A cache that fills, restarts, and refills, with every restart being a period where every request compiles everything.

opcache_get_status():

  used_memory              126 MB
  free_memory                2 MB
  wasted_memory             12 MB   (9.5%)
  oom_restarts               4      ← in 6 hours
  hash_restarts              0
  cached_scripts         8,412

after opcache.memory_consumption 128 → 256:
  oom_restarts               0
  p95 on a cold path     410ms → 38ms

The restart counters are the numbers to alert on and nobody exports them by default — a cache restarting four times in six hours is invisible except as periodic latency that looks like a network problem. wasted_memory above about 10% is the other signal, and it comes from deploys invalidating scripts, which is expected and is why headroom matters.