Neon performance
★★★★★ 4.8 CE

Neon Performance: Benchmarks, Latency & Limits 2026

Neon is serverless Postgres, compute split from storage, autoscaling 0.25 to 16 CU and scaling to zero. Independent tests hit 8,563 TPS at 29.8ms on 16 vCPU.

Neon Performance verdict

Verified today·7 sources checked

Neon is serverless Postgres with separated compute and storage.

Compute autoscales from 0.25 to 16 Compute Units, where 1 CU is 1 vCPU and 4 GB, and scales to zero after 5 minutes idle. Independent ClickHouse PostgresBench in April 2026 measured 8,563 TPS at a 29.8ms average and 49.2ms P99 latency at 16 vCPU on 100 GB, and 2,847 TPS at 4 vCPU.

How to size it

Use Neon where autoscaling and scale-to-zero matter more than peak raw throughput, since dev, test and bursty workloads benefit most. Size compute at 8 to 16 CU for OLTP above 5,000 TPS. Disable scale-to-zero on paid plans for latency-sensitive production, where cold starts are unacceptable. Enable PgBouncer pooling for high connection counts, and prefer direct TCP over the serverless HTTP driver for sub-50ms paths.

Honest limits
  • The benchmark numbers are fixed-compute runs, so under autoscaling the same workload behaves differently as the CU count adjusts to load.
  • Scale-to-zero adds a cold start of a few hundred milliseconds after idle, longer past 7 days, though paid plans can disable it for latency-sensitive workloads. Autoscaling is bounded by a max delta of 8 CU, and computes over 16 CU are fixed-size and always active.
  • pg_stat_statements resets its statistics on every scale-to-zero suspension, which limits cross-session query performance tracking.
Peak throughput (independent)
8,563 TPS @ 16 vCPU
Avg / P99 latency (independent)
29.8 / 49.2 ms
Autoscaling range
0.25 to 16 CU
Cold start
few hundred ms
Pooled connections
10,000 / endpoint
View sources

This page covers Neon's latency, throughput and scaling. Backups and pricing live on their own pages.

Browse the full Neon plan catalog

Neon query latency profile

MeasurementConfigResultSource
Avg latency16 vCPU / 64 GB, ~100 GB29.8 msClickHouse PostgresBench
P99 latency16 vCPU / 64 GB, ~100 GB49.2 msClickHouse PostgresBench
Avg latency4 vCPU / 16 GB, ~100 GB89.9 ms (P99 116.5)ClickHouse PostgresBench
Avg latency16 vCPU / 64 GB, ~500 GB32.8 ms (P99 56.3)ClickHouse PostgresBench
Cold start (scale-to-zero)Project idle < 7 daysfew hundred msNeon docs
Cached page latencyCompute RAM / local NVMememory / microsecondNeon docs

Throughput and connection limits

DimensionValueNotes
Peak throughput8,563 TPS16 vCPU / 64 GB at ~100 GB; pgbench -c256 -j16
Throughput (4 vCPU)2,847 TPS4 vCPU / 16 GB at ~100 GB
Throughput (500 GB)7,802 TPS16 vCPU / 64 GB at ~500 GB dataset
Pooled connections10,000 / endpointPgBouncer transaction mode; hard limit
Pool modeTransaction (PgBouncer)Connections returned to pool after each transaction; no session mode
Direct connections (16 CU)4,000 (capped)max_connections scales with CU; capped at 4,000

Scale ceilings and the autoscaling model

AspectValueNotes
Autoscaling range0.25 to 16 CULive CU adjustment without restarts
Max fixed compute (Scale)56 CU / 224 GBFixed size only; always active over 16 CU
Autoscaling max delta8 CU (max minus min)e.g. min 2 CU caps at max 10 CU
Scale-to-zero5 min idleDefault all plans; Free cannot disable, paid plans can
CU definition1 CU = 1 vCPU + 4 GBAutoscaling adjusts CU count to live load
Storage (Free cap)0.5 GB / projectStorage billed $0.35/GB-month above plan allowance

Neon reliability and architecture

  • Neon separates the compute layer (optimized for latency) from the storage layer (optimized for correctness, history and scale), so compute is stateless and can restart or autoscale without data loss
  • Durability rests on a Paxos-based Safekeeper WAL quorum: a transaction is committed once a quorum of Safekeepers has acknowledged the WAL record, protecting against the loss of any single Safekeeper node
  • The Pageserver reconstructs database pages from WAL and serves cold pages, while object storage holds long-term immutable history and is never on the hot query path
  • Autoscaling dynamically adjusts the amount of compute allocated in response to live load without restarts or manual intervention, within the configured min-max range
  • Neon runs standard Postgres 14 through 17, set at project creation; pg_stat_statements is available but its statistics reset on each compute suspension (scale-to-zero), limiting cross-session tracking
  • Connection scaling uses PgBouncer in transaction mode, pooling up to 10,000 client connections per endpoint, so connection-heavy apps scale beyond the per-CU direct limit

Neon benchmark results, independently measured

  • The ClickHouse PostgresBench (April 2026) is an open-source, reproducible pgbench benchmark published by a peer competitor, run with 256 clients, 16 threads and 600-second runs in prepared mode
  • At 16 vCPU / 64 GB on a ~100 GB dataset Neon reached 8,563 TPS with a 29.8ms average and 49.2ms P99 latency, its strongest measured configuration
  • At 4 vCPU / 16 GB Neon reached 2,847 TPS with an 89.9ms average and 116.5ms P99, so throughput and latency scale strongly with compute size
  • On a larger ~500 GB dataset the 16 vCPU configuration held 7,802 TPS at a 32.8ms average and 56.3ms P99, showing graceful degradation as data size grows
  • These independent numbers reflect fixed-compute runs; under autoscaling the same workload behaves differently as the CU count adjusts to load, and the separated-storage architecture keeps object storage off the commit path

Neon Performance FAQ

How fast is Neon in independent benchmarks?

The independent ClickHouse PostgresBench, run in April 2026 with open-source pgbench, measured Neon at 8,563 TPS on a 100 GB dataset. That was a 29.8ms average and 49.2ms P99 latency at 16 vCPU and 64 GB, dropping to 2,847 TPS with an 89.9ms average at 4 vCPU. On a larger 500 GB dataset the 16 vCPU config held 7,802 TPS at 32.8ms. These are fixed-compute runs, so under autoscaling the same workload behaves differently as CU adjusts.

What is a Neon Compute Unit (CU)?

One CU allocates 1 vCPU and 4 GB of RAM. Autoscaling adjusts the CU count between a configured minimum and maximum in response to live load, without restarts, with the max delta capped at 8 CU. Computes larger than 16 CU are fixed-size and always active, not eligible for scale-to-zero. Neon plans range from 0.25 to 2 CU on Free, up to 16 CU autoscale on Launch, and up to 56 CU fixed on Scale.

How long is Neon's cold start after scale-to-zero?

Computes scale to zero after 5 minutes of inactivity by default, and activation generally takes a few hundred milliseconds for projects idle under 7 days, slightly longer past that. Postgres memory buffers are cold after wake-up, so the first queries run slower until caches warm. Paid plans can disable scale-to-zero to keep compute always active, while the Free plan cannot.

How many connections does Neon support?

Direct connection limits scale with CU size, for example about 1,676 at 4 CU, capped at 4,000 at 16 CU. For higher concurrency, Neon runs PgBouncer in transaction mode, which pools up to 10,000 client connections per endpoint. Transaction mode returns connections to the pool after each transaction, so SET and RESET, LISTEN and NOTIFY, and session-level prepared statements are unsupported on the pooled endpoint.

How does Neon's architecture affect performance?

Neon separates compute from storage. Pages cached in the compute node's RAM or local NVMe are served at memory speed. Uncached pages are reconstructed from WAL by the Pageserver, and object storage for long-term history is never on the hot path. A Paxos-based Safekeeper WAL quorum sets commit latency, while the Pageserver stays off the commit critical path. This is what enables instant branching and scale-to-zero.

Should I use scale-to-zero in production?

It depends on latency tolerance. Scale-to-zero saves cost on idle databases but adds a few-hundred-millisecond cold start on the first request after idle. For latency-sensitive production workloads where cold starts are unacceptable, disable scale-to-zero on a paid plan to keep compute always active. For dev, test, preview branches and bursty workloads, scale-to-zero is a strong cost lever.

Sources & verification

Verified by ComparEdgeMethod: Vendor docs, official pages, and selected independent sources
SourceWhat was checkedLast checked
Neon OfficialOfficial product pageJuly 10, 2026
ClickHouse Blog PostgresbenchIndependent referenceJuly 10, 2026
Neon Connect Connection PoolingConnect Connection PoolingJuly 10, 2026
Neon Introduction Architecture OverviewIntroduction Architecture OverviewJuly 10, 2026
Neon Introduction AutoscalingIntroduction AutoscalingJuly 10, 2026
Neon Introduction Compute LifecycleIntroduction Compute LifecycleJuly 10, 2026
Neon PricingPricing and plansJuly 10, 2026

Every fact on this Neon page is tied to a named source and a verification date. Freshness-sensitive figures trace to the sources above; verify against the vendor before relying on them.