Skip to main content
This page is archived. Fly Postgres (unmanaged) is no longer maintained, and Fly.io Support is not able to provide support or guidance for it. We now offer Fly.io Managed Postgres, our fully-managed database service that handles all aspects of running production PostgreSQL databases.These pages are kept for reference and are not listed in the navigation. The full set is indexed on the Fly Postgres (Unmanaged) page.
See Monitoring for how to check the current sizes of the VMs in your Postgres cluster.
Before scaling a Postgres VM: Consider the Postgres configuration parameters of your cluster, and adjust the resources accordingly. In particular, if the shared-buffers value is proportionally too high for the VM RAM, then a Postgres VM might fail its health checks.

If you’re scaling your VMs up, then scale the VMs first before adjusting the Postgres config to match. If you’re scaling down, then adjust the cluster’s Postgres parameters to match the reduced resources before scaling the VMs.
Scale VM resources for each Machine in the cluster with the flyctl machine update command. Here’s an example of scaling RAM to 1GB on a machine:
You can use fly machine status again to confirm the new scale of the Machine.

HA clusters

If you have more than one instance in the primary region cluster, scale these VMs identically; they are meant to be interchangeable so the cluster can fail over in case of trouble.

Postgres resource parameters

When you created your Fly Postgres cluster, certain Postgres configuration parameters were set to sensible values for the resources being provisioned. This means you may want, or need, to change them if you scale your VM resources. Read Configuration Tuning before scaling down.