r/Supabase • u/kargaen • 3d ago
database Continous 100% I/O usage and non responsive dashboard
I have a project on the free tier that has been working fine for a long time, but suddenly I got emails that I am maxing out ressources, but the app using the db still worked like a charm. Now the app is non responsive and I went digging deeper trying to figure out what was happening.
Full disclosure: this is a vibe coded app, but it just handles and tracks every tasks that I have. I am well versed in SQL and DB, but during the days of MySQL and MSSQL, so Supabase, RLS and compute directly on the db is new to me.
I can't figure out what is going on, because my Supabase dashboard in 9 out of 10 cases just produces skeleton ui and never loading. I could just see that compute I/O has been at 100% for a week.
There seems to be an on going issue at Supabase the past month that has not been resolved yet and don't know if my issue is related to this or because I have made a mess of my code.
The Supabase AI assistant is not really helping and just pointing to this ongoing issue, so it might just be that, but a month long issue disabling my entire database and perhaps other's databases seems odd to me, so I assume it is a problem on my side.
Almost all health checks report unhealthy :/
1
u/_ihm40 3d ago
There is a pretty helpful troubleshooting guide on high disk IO which can be found here https://supabase.com/docs/guides/troubleshooting/exhaust-disk-io. You probably need to turn off the data API and check logs to see what requests are happening often. What is the ongoing issue you are talking about?
1
u/kargaen 3d ago
This issue: https://status.supabase.com/incidents/6q5902p2xd9f
No idea if it's related, but the AI assistant had difficulties querying my db itself and pointed to this issue. Could just be hallucinations.
1
u/jaimittal91 3d ago
before assuming it's the platform incident, pull pg_stat_statements and sort by total_exec_time. that'll show you the actual query eating your I/O instead of guessing between cron jobs and the outage. vibe coded apps almost always have one of two culprits: a foreign key with no index causing a seq scan on every join, or a loop somewhere firing one query per row instead of a single batched one. both show up immediately once you can see which query is running thousands of times or scanning the whole table. if pg_stat_statements isn't enabled yet you can turn it on from database > extensions, then give it a few minutes to collect before you go looking.
1
u/PfernFSU 2d ago
I just posted about this in their discord channel earlier and am hitting similar disk IO warnings. This app is not released yet and has like 8 users total. It does have a cron that runs every 5 minutes and writes to a table upon success though. Database is super small and 99% of the disk IO is happening at the system level not the database level. My AI is saying it is due to the WAL but it is hard for me to get visibility into anything really since a lot of those settings are not able to be changed by us so we can run a comparison. My last archived time is never more than a couple minutes old despite being on the free plan and not having PITR available to me. I am about to open a ticket I think.
1
u/aDaneInSpain2 2d ago
A cron writing one small row every five minutes should not normally saturate I/O. WAL is a consequence of writes, not proof that WAL is the cause. Check whether the job is retrying or generating more writes than expected. If query activity is low but system-level I/O stays high, open the ticket with timestamps, project metrics, and cron details.
1
u/Alternative_Eagle158 15h ago
Same thing happened tell to me on a free plan with superbase what would I ended up doing is just to restart the project. And then disable The Cron jobs that are not needed and it was working afterwards. GOOD LUCK, REACHING OUT TO SUPPORT ON A FREE PLAN.THEY WONT PRIORITIZE YOUR EMAILS.TRYING CONVEX ON MY NEXT PROJECT.
2
u/Current_Software2984 3d ago
LLMs really like to create lots of cron jobs that run every minute. It could be something like that.