apps/docs/content/troubleshooting/interpreting-supabase-grafana-io-charts-MUynDR.mdx
There are two primary values that matter for IO:
Each compute instance has unique IO settings. The current baseline (sustained) and max (burst) limits are listed below.
<ComputeDiskLimitsTable />Compute sizes below XL can burst above baseline for short periods before returning back to their baseline behavior.
There are other metrics that indicate IO strain.
This example shows a 16XL database exhibiting severe IO strain:
Its Disk IOPS is constantly near peak capacity:
Its throughput is also high:
As a side-effect, its CPU is encumbered by heavy Busy IOWait activity:
Excessive IO usage is highly problematic as it clarifies that your database is expending more IO than it normally is intended to manage. This can be caused by
If a database exhibited some of these metrics for prolonged periods, then there are a few primary approaches:
Other useful Supabase Grafana guides:
Webhooks:
Supabase webhooks use the pg_net extension to handle requests. The net.http_request_queue table isn't indexed to keep write costs low. However, if you upload millions of rows to a webhook-enabled table too quickly, it can significantly increase the read costs for the extension.
To check if reads are becoming expensive, run:
select count(*) as exact_count from net.http_request_queue;
-- the number should be relatively low <20,000
If you encounter this issue, you can either:
Increase your compute size to help handle the large volume of requests.
Truncate the table to clear the queue:
TRUNCATE net.http_request_queue;