Comparison
Graviton3 vs Graviton4 for PostgreSQL
How much does Graviton4 (m8g) actually improve PostgreSQL performance over Graviton3 (m7g)? A size-for-size benchmark of throughput and cost-efficiency.
Verdict
For this PostgreSQL workload, m8g.xlarge (arm64) is the best value at 337,498 req/s per $/hr — a 15% cost-efficiency lead over m7g.xlarge. The highest raw throughput comes from m8g.2xlarge at 81,055 req/s.
Side by side
| Instance | Arch | $/hr | RPS | p95 ms | RPS/$ | RPS/vCPU |
|---|---|---|---|---|---|---|
| m8g.xlarge | arm64 | $0.2014/hr | 67,985 | 1.86 | 337,498 | 16,996 |
| m7g.xlarge | arm64 | $0.1851/hr | 54,279 | 2.03 | 293,214 | 13,570 |
| m7g.2xlarge | arm64 | $0.3483/hr | 75,741 | 1.82 | 217,449 | 9,468 |
| m8g.2xlarge | arm64 | $0.3810/hr | 81,055 | 1.75 | 212,767 | 10,132 |
| m7g.large | arm64 | $0.1035/hr | 5,466 | 11.85 | 52,802 | 2,733 |
| m8g.large | arm64 | $0.1117/hr | 5,485 | 11.91 | 49,117 | 2,743 |
Measured at a 10 GB dataset on gp3-baseline storage. Open the sizing tool to change the dataset size, disk, or metric, or browse the full benchmark data.
Frequently asked questions
Which is better for PostgreSQL, m7g.large or m8g.large or m7g.xlarge or m8g.xlarge or m7g.2xlarge or m8g.2xlarge?
On cost-efficiency, m8g.xlarge leads at 337,498 req/s per $/hr. For raw throughput, m8g.2xlarge is fastest at 81,055 req/s. Choose by whether you optimize for throughput per dollar or peak capacity.
m8g.xlarge vs m7g.xlarge: what's the difference for PostgreSQL?
m8g.xlarge delivers 67,985 req/s at 337,498 req/s per $/hr; m7g.xlarge delivers 54,279 req/s at 293,214 req/s per $/hr. That is a 15% cost-efficiency edge for m8g.xlarge on this workload.
What workload and configuration were these numbers measured on?
A mixed OLTP pattern — 90% primary-key reads, 10% single-row inserts — at 32 concurrent connections on PostgreSQL 17 in us-east-1, with a 10 GB dataset on a gp3-baseline gp3 volume. The benchmark harness is open source.