ClickHouseKaushik Iska8 min readintermediate
Postgres on NVMe: performance and the convergence of transactions and analytics
Summary
Local NVMe storage cuts Postgres I/O latency from ms to µs, yielding ~9× higher TPS and 10× lower transaction latency on a 482 GiB pgbench workload. The gain comes from reduced IO wait, not more CPU work. To retain durability, combine NVMe with quorum synchronous replication and continuous WAL archiving (WAL‑G). For analytics, offload scans to ClickHouse via WAL‑based CDC (pg_clickhouse or the ne…
- When the working set exceeds RAM, storage latency dominates Postgres performance.
- Instance‑store NVMe (tens of µs) behaves like a second memory tier, dramatically improving OLTP latency and throughput.
- Benchmark: 16 030 TPS / 4.0 ms per UPDATE on NVMe vs 1 734 TPS / 36.9 ms on gp3 EBS (8‑node cluster, 64 clients).
- NVMe reduces I/O wait; CPU utilization rises but overall wall‑time drops.
High‑throughput payment and SaaS workloads often hit storage bottlenecks as data grows to hundreds of GBs. Switching to local NVMe can turn a latency‑bound system into a predictable, high‑TPS service without major code changes, but you still need a separate columnar engine for heavy analytics.
8/10




