Drives /load.php (zero-dep, no DB) and /load-sql.php (DB contrast). Knobs: wait=I/O ms, burn=CPU ms, mb=hold N MB.
Does a bigger PHP plan do anything? It gives more processes and more memory — this page probes both. Rescale the plan between runs and compare.
mb before a 500 ≈ memory_limit; grows with the plan only if memory_limit scales.Whether extra processes buy real throughput (not just concurrency) is the k6 arrival test — this page is the fast visual check.
Fire one request and see what the server did.
Each request just waits (holds no CPU). If the plan runs P PHP processes, ~P finish in the first wave (≈ the wait time); the rest queue into later waves. That wave-1 count ≈ the plan's concurrency. Expect wave-1 ≈ the plan's process count (2/2/2/4/6/8 for XS→2XL); flat across the smallest tiers, then rising.
Requests increasing mb until one exceeds memory_limit and returns HTTP 500. The highest size that still returns 200 is the ceiling — it should rise with the plan iff memory_limit scales.