Compute Add-ons

Every project on the Supabase Platform comes with its own dedicated Postgres instance running inside a virtual machine (VM). The following table describes the base instance with additional compute add-ons available if you need extra performance when scaling up Supabase.

PlanPricingCPUMemoryDisk IO BandwidthConnections: DirectConnections: Pooler
Free (Included)$02-core ARM (shared)1 GBUp to 2,085 Mbps10 (recommended)50 (recommended)
Small$52-core ARM (shared)2 GBUp to 2,085 Mbps30 (recommended)75 (recommended)
Medium$502-core ARM (shared)4 GBUp to 2,085 Mbps50 (recommended)150 (recommended)
Large$1002-core ARM (dedicated)8 GBUp to 4,750 Mbps100 (recommended)300 (recommended)
XL$2004-core ARM (dedicated)16 GBUp to 4,750 Mbps200 (recommended)600 (recommended)
2XL$4008-core ARM (dedicated)32 GBUp to 4,750 Mbps350 (recommended)1200 (recommended)
4XL$95016-core ARM (dedicated)64 GBUp to 4,750 Mbps420 (recommended)2800 (recommended)
8XL$1,86032-core ARM (dedicated)128 GBUp to 9,000 Mbps450 (recommended)5600 (recommended)
12XL$2,79048-core ARM (dedicated)192 GBUp to 13,500 Mbps480 (recommended)8600 (recommended)
16XL$3,72064-core ARM (dedicated)256 GBUp to 19,000 Mbps500 (recommended)11,600 (recommended)

Contact us if you require a custom plan.

Dedicated vs. shared CPU#

All Postgres instances on Supabase are dedicated applications running inside dedicated virtual machines. However, the underlying hardware resources, for example the physical CPU, may be shared between multiple VMs, but appear to the OS as if it is a dedicated hardware CPU. This is commonly referred to as a vCPU (virtual CPU). Cloud providers use these shared hardware resources to save cost—you can upgrade to a larger compute add-on to guarantee a dedicated physical CPU for your instance.

Compute upgrades #

When considering compute upgrades, assess whether your bottlenecks are hardware-constrained or software-constrained. For example, you may want to look into optimizing the number of connections or examining query performance. When you're happy with your Postgres instance's performance, then you can focus on additional compute resources. For example, you can load test your application in staging to understand your compute requirements. You can also start out on a smaller tier, create a report in the Dashboard to monitor your CPU utilization, and upgrade later as needed

Disk IO bandwidth#

Disk IO bandwidth can be measured in IOPS, a unit of measurement representing the number of input/output operations per second. These operations are calculated in Megabits per second. Depending on the read/write load of your application, you may need to upgrade to a larger instance capable of a higher number of IOPS. If you're unsure of how many IOPS your application requires, you can load test your project and inspect these metrics in the Dashboard. Alternatively, you can start on a smaller instance size and upgrade later as needed.