DATABASES Signal 295
Local NVMe delivers roughly nine-times higher PostgreSQL throughput than gp3 EBS in benchmark
A benchmark presented at POSETTE 2026 showed that PostgreSQL on local NVMe achieved about 16k TPS versus 1.7k TPS on gp3 EBS.
The order-of-magnitude speedup means ingestion pipelines, vacuum, and logical replication can complete far faster, reducing latency spikes and back-pressure. Teams running large PostgreSQL workloads should consider local NVMe to avoid storage-induced performance bottlenecks.
Written by elseif from the cluster below · every claim links back to a sourceThe three things worth knowing
The benchmark used eight identical clusters on m6id.4xlarge instances, differing only by storage type (local NVMe vs gp3 EBS at 3,000 IOPS).
Median throughput was 16,030 TPS on NVMe and 1,734 TPS on EBS, a 9.24× difference, with latency dropping from 36.9 ms to 4.0 ms.
VACUUM and logical replication backlogs completed in roughly one-third the time on NVMe compared to EBS.
THE READ
What the cluster adds up to.
At POSETTE 2026 Sai Srirampur ran a benchmark that compared the same 3.3-billion-row PostgreSQL workload on local NVMe and on gp3 EBS provisioned at 3,000 IOPS. Eight identical clusters on m6id.4xlarge instances were used, four per storage class, to isolate storage as the only variable. The NVMe clusters achieved a median 16,030 transactions per second while the EBS clusters delivered a median 1,734 TPS, a 9.24× gap. Median transaction latency fell from 36.9 ms on EBS to 4.0 ms on NVMe.
The talk linked these raw numbers to five common scaling symptoms: slow ingestion, unpredictable P95 read latency, autovacuum lag, longer checkpoints, and logical-replication delay. All of those symptoms involve I/O that competes for bandwidth, IOPS, and queue depth when the working set exceeds memory. On slower storage the queuing cost inflates both average and tail latency, causing the observed symptoms. By reducing the per-operation I/O cost to tens of microseconds, local NVMe lessens the interference between client queries and background maintenance.
Adopting local NVMe in production requires instances that expose instance-store NVMe, such as the m6id.4xlarge used in the benchmark, and placing the PostgreSQL data directory on that device. The benchmark ran with 64 GiB of RAM and 16 GiB of shared_buffers, so the storage advantage appears when the 482 GiB dataset exceeds the memory cache. Because the only variable changed was storage, the performance gain can be attributed to the lower latency and higher IOPS of local NVMe.
The results are bounded to the specific workload, a highly concurrent random-UPDATE pgbench run lasting five minutes, and to the baseline gp3 EBS configuration. Different EBS types or higher IOPS provisioning could narrow the performance gap, and workloads that fit largely in RAM would see less relative gain. Nevertheless, the benchmark demonstrates that for large, write-heavy PostgreSQL deployments, local NVMe can dramatically improve throughput and reduce latency spikes.
Written by elseif from the cluster below · checked for specifics the sources never containedTHE CLUSTER
↗