Free Nano: process burst every 10 minutes, swap jumps with it. What is it? #52591
Replies: 2 comments 1 reply
|
Here is what is happening with the 10-minute process burst and why swap spikes on Nano instances: 1. What runs every 10 minutes and spawns ~650 processes?In Supabase managed Postgres instances, the host runs automated internal platform housekeeping and metric-collection daemons:
2. Why does swap jump on Free/Nano?
3. Can it run less often, and how to optimize?
|
|
One caution about the explanation above: if your "forks" series is the Linux For the next comparison, align memory available, swap-in/out rates (where exposed), CPU and disk I/O, and request latency/errors over the same windows; Supabase documents its Metrics API and Reports. Comparing pool 3 and pool 10 with the same workload, including connection waits and errors, would help distinguish a useful mitigation from a throughput trade-off. Your two pool-3 runs are a useful lead, but not proof of the underlying cause. I cannot determine from these counters which service owns the schedule, its expected memory footprint, or whether customers can tune it; those need confirmation from Supabase. AI-assisted; I have not inspected your project or run your workload. |
Uh oh!
There was an error while loading. Please reload this page.
A small project on Free/Nano shows a process burst about every 10 minutes, and swap jumps with it. I'd like to know what it is.
Environment: eu-west-1, Nano, 406 MB RAM, 1 GB swap. Test copy on image 17.11.0.003, production on 17.6.1.084.
Test copy, no clients connected, from
/customer/v1/privileged/metrics(30 Oct, UTC). Over 125 minutes there were 12 bursts of 636-671 forks, one per 10-minute slot. Other windows stayed at 65 or less.Production, Observability charts only (31 Oct, UTC, pool still 10), CPU about 98% idle at the last point:
Production edge_logs for the last day: 649 requests, 145 over 1 s, 99 with upstream time over 1 s, 3 with more than 1 s in front of upstream. So this does not look like #52011. Some of the 145 are heavy admin RPCs (about 5 s); I haven't separated them.
With 200 simulated users on the test copy, swap above about 400 MB before a burst reached 512 MB every time. Worst run on default settings: p95 40 s, 141 failed of 17,644 requests. PostgREST pool 3 instead of 10 kept swap under 380 MB before bursts in two runs, so I have a workaround.
I can't see the process list. At those moments the schema cache load counter did not move and the Postgres log was empty.
Questions:
I collected the numbers with my own scripts; an AI assistant helped write this post. I can share the full metric dumps.
All reactions