Member-only story
PostgreSQL Is Using 90% of Your Disk. Here’s Where the Space Went.
WAL, dead tuples, indexes, tables, bloat, and the PostgreSQL queries I use to find the real culprit.
The alert arrives at 2:13 AM.
PostgreSQL disk usage: 90%
The application is still running.
Queries are still completing.
Nothing appears broken.
Yet there’s a problem.
At 90% utilization, there isn’t much room left for unexpected growth. A sudden spike in writes, a large deployment, a replication issue, or even a runaway transaction could push the database into a much more serious situation.
The obvious question becomes:
What’s consuming all the disk space?
You check the database size.
It’s large.
But that doesn’t tell you enough.
Is it:
- Tables?
- Indexes?
- TOAST data?
- Dead tuples?
- WAL?
- Replication slots?
- Temporary files?
- A table that’s been quietly growing for months?
This is where PostgreSQL’s storage functions and system views become incredibly useful.
Because when a database reaches 90% disk utilization, guessing is dangerous.






