> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Performance benchmarks

> Performance benchmarks comparing Postgres managed by ClickHouse with AWS Aurora, RDS, and other managed PostgreSQL services

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

export const galaxyOnClick = eventName => () => {
  try {
    if (typeof window !== "undefined" && window.galaxy && eventName) {
      window.galaxy.track(eventName, {
        interaction: "click"
      });
    }
  } catch (e) {}
};

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <Icon />
                <span>Beta</span>
            </a>;
  }
  return <div className="betaBadge">
            <Icon />
            <span>
                Beta feature. 
                <u>
                    <a href="/docs/beta-and-experimental-features#beta-features">
                        Learn more.
                    </a>
                </u>
            </span>
        </div>;
};

<Info>
  **TL;DR**

  * **Benchmarked** Postgres managed by ClickHouse against AWS RDS (16k provisioned IOPS) and Aurora IO Optimized using standard [`pgbench`](https://www.postgresql.org/docs/current/pgbench.html) tests
  * **Performance**: ClickHouse's NVMe-backed Postgres delivers **4.3-9x faster performance** for IO-intensive workloads and **12% faster** for CPU-bound scenarios
  * **Ideal for fast-growing AI-driven workloads** that demand high transaction rates, low-latency data access, and predictable performance without IO bottlenecks
</Info>

<h2 id="overview">
  Benchmark overview
</h2>

We conducted comprehensive performance testing using `pgbench`, the standard PostgreSQL benchmarking tool, to evaluate workload performance under both moderate and high-concurrency scenarios.

<h2 id="benchmarks">
  Benchmarks
</h2>

All performance tests were conducted using a client VM with the same compute capacity, collocated in the same region and availability zone as the PostgreSQL database to ensure fair comparison.

<h3 id="test1">
  Test 1: IO Intensive - Read+Write (500 GB dataset)
</h3>

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/CAgHfVRSetEkx9fz/images/managed-postgres/benchmarks/io-intensive-readwrite.png?fit=max&auto=format&n=CAgHfVRSetEkx9fz&q=85&s=3c1c38681825ab4c27fcf31c39abb5a0" alt="IO Intensive Read+Write benchmark results" size="md" border width="1474" height="914" data-path="images/managed-postgres/benchmarks/io-intensive-readwrite.png" />

**Performance improvement over RDS (16k IOPS):**

* **326% higher TPS** (4.3x faster)

**Performance improvement over Aurora IO Optimized:**

* **345% higher TPS** (4.5x faster)

**Analysis**: Mixed read/write workloads showcase the most dramatic performance advantages of NVMe storage and represent the **most realistic scenario for fast-growing AI-driven workloads** that require both high-throughput data ingestion and low-latency reads. **Postgres managed by ClickHouse achieved 19.8K TPS with higher concurrency**, demonstrating how NVMe storage scales effectively under load. This is **4.3-4.5x faster than RDS and Aurora**. Network-attached storage solutions struggled with write-heavy operations, with RDS and Aurora maxing out at 4.4K-4.6K TPS despite provisioned capacity and even with Aurora's IO Optimized configuration.

<h4 id="test1-setup">
  Setup
</h4>

This test evaluates mixed read/write performance with a large 500 GB dataset, stressing both read and write paths of the storage subsystem.

**Instance configuration:**

| Configuration  | Postgres managed by ClickHouse | RDS with 16k IOPS              | Aurora IO Optimized             |
| -------------- | ------------------------------ | ------------------------------ | ------------------------------- |
| **PG Version** | 17                             | 17                             | 17                              |
| **vCPUs**      | 16                             | 16                             | 16                              |
| **RAM**        | 64 GB                          | 64 GB                          | 128 GB                          |
| **Disk Size**  | 1 TB                           | 1 TB                           | 1 TB                            |
| **Disk Type**  | NVMe (unlimited IOPS)          | Network-attached (16,000 IOPS) | Network-attached (IO Optimized) |

**Test configuration:**

```bash theme={null}
# Initialize database (500 GB dataset)
pgbench -i -s 34247

# Read+Write benchmark
pgbench -c 256 -j 16 -T 600 -M prepared -P 30
```

<h3 id="test2">
  Test 2: IO Intensive - Read-Only (500 GB dataset)
</h3>

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/CAgHfVRSetEkx9fz/images/managed-postgres/benchmarks/io-intensive-readonly.png?fit=max&auto=format&n=CAgHfVRSetEkx9fz&q=85&s=171955236637f895fa3967085d29b2fe" alt="IO Intensive Read-Only benchmark results" size="md" border width="1474" height="914" data-path="images/managed-postgres/benchmarks/io-intensive-readonly.png" />

**Performance improvement over RDS (16k IOPS):**

* **802% higher TPS** (9.0x faster)

**Analysis**: The performance gap widens dramatically for read-intensive workloads that are IO Bound. **Postgres managed by ClickHouse delivered 84.8K TPS**, while RDS with 16,000 provisioned IOPS achieved only 9.4K TPS despite having equivalent compute resources. The key difference: ClickHouse's NVMe storage scales with higher concurrency, while network-attached storage remains constrained by provisioned IOPS limits. Even with provisioned IOPS, RDS was still 9x slower than ClickHouse, demonstrating the critical importance of storage architecture for IO-intensive workloads.

<h4 id="test2-setup">
  Setup
</h4>

This test evaluates read performance with a large 500 GB dataset that doesn't fit in memory, stressing disk I/O capabilities.

**Instance configuration:**

| Configuration  | Postgres managed by ClickHouse | RDS with 16k IOPS              |
| -------------- | ------------------------------ | ------------------------------ |
| **PG Version** | 17                             | 17                             |
| **vCPUs**      | 16                             | 16                             |
| **RAM**        | 64 GB                          | 64 GB                          |
| **Disk Size**  | 1 TB                           | 1 TB                           |
| **Disk Type**  | NVMe (unlimited IOPS)          | Network-attached (16,000 IOPS) |

**Test configuration:**

```bash theme={null}
# Initialize database (500 GB dataset)
pgbench -i -s 34247

# Read-only benchmark
pgbench -c 256 -j 16 -T 600 -M prepared -P 30 -S
```

<h3 id="test3">
  Test 3: CPU Intensive (data fits in memory)
</h3>

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/CAgHfVRSetEkx9fz/images/managed-postgres/benchmarks/compute-intensive.png?fit=max&auto=format&n=CAgHfVRSetEkx9fz&q=85&s=1bb6569d8763ab05528bcd3074abe087" alt="CPU Intensive benchmark results" size="md" border width="1474" height="914" data-path="images/managed-postgres/benchmarks/compute-intensive.png" />

**Performance improvement:**

* **12.3% higher TPS** than RDS PostgreSQL

**Analysis**: Even in CPU-bound scenarios where disk I/O is minimal, **Postgres managed by ClickHouse led the pack with 36.5K TPS**. Despite both services hitting 100% CPU utilization, ClickHouse's NVMe storage delivered superior performance with better cache hit rates. The 12% advantage over RDS demonstrates the efficiency of the underlying infrastructure even when workloads are primarily CPU-bound.

<h4 id="test3-setup">
  Setup
</h4>

This test evaluates CPU performance when the working set fits entirely in memory, minimizing disk I/O impact.

**Instance configuration:**

| Configuration  | Postgres managed by ClickHouse | RDS PostgreSQL         |
| -------------- | ------------------------------ | ---------------------- |
| **PG Version** | 17                             | 17                     |
| **vCPUs**      | 2                              | 2                      |
| **RAM**        | 8 GB                           | 8 GB                   |
| **Disk Type**  | NVMe                           | Network-attached (gp3) |

**Test configuration:**

```bash theme={null}
# Initialize database (2 GB dataset)
pgbench -i -s 136

# Warm-up run to load dataset into memory
pgbench -c 1 -T 60 -S -M prepared

# Run benchmark (read-only, prepared statements)
pgbench -c 32 -j 16 -T 300 -S -M prepared -P 30
```

<h2 id="summary">
  Performance summary
</h2>

<h3 id="key-findings">
  Key findings
</h3>

Across all three benchmark scenarios, Postgres managed by ClickHouse consistently delivered superior performance:

1. **IO-intensive read+write workloads**: 4.3-4.5x higher TPS compared to RDS (16k IOPS) and Aurora IO Optimized
2. **IO-intensive read workloads**: 9x higher TPS compared to RDS with 16k IOPS
3. **CPU-bound workloads**: 12% higher TPS than RDS

<h3 id="when-it-excels">
  When Postgres by ClickHouse excels
</h3>

Postgres by ClickHouse is ideal for applications that:

* **Power fast-growing AI-driven workloads** requiring high-throughput data ingestion with frequent upserts, real-time feature updates, and analytics out of the box through seamless integration with ClickHouse for OLAP workloads
* Perform frequent writes, updates, or mixed read/write operations
* Need predictable, high-performance storage
* Are currently constrained by IOPS limits on traditional managed Postgres services

**If you expect analytics later** and anticipate deeper ClickHouse integration—common in modern AI workloads where transactional data feeds real-time dashboards, feature stores, and ML pipelines—**Postgres by ClickHouse should be your default go-to choice**. The native integration eliminates complex ETL pipelines and enables seamless data flow between your operational database and analytical queries.

<h3 id="nvme-advantage">
  NVMe architecture advantage
</h3>

The performance advantage comes from the fundamental architectural difference:

| Aspect                  | NVMe Storage (Managed Postgres)  | Network-Attached Storage (Provisioned IOPS)      |
| ----------------------- | -------------------------------- | ------------------------------------------------ |
| **IOPS**                | 100k to virtually unlimited      | 16,000 provisioned                               |
| **Network hops**        | Zero (local device)              | Every disk operation requires network round trip |
| **Performance scaling** | Scales linearly with concurrency | Limited by provisioned IOPS                      |

For more details on the performance benefits of NVMe storage, see [NVMe-powered performance](/products/managed-postgres/overview#nvme-performance).

<h2 id="cost-effectiveness">
  Cost-effectiveness
</h2>

Beyond raw performance, Postgres managed by ClickHouse offers superior price-performance:

* **Higher throughput per dollar**: Achieve 4-9x more TPS compared to RDS with 16k provisioned IOPS and Aurora IO Optimized
* **Predictable costs**: No need to provision additional IOPS capacity—unlimited local IOPS included
* **Lower compute requirements**: Achieve target performance with smaller instance sizes due to efficient I/O
* **Reduced need for read replicas**: Higher single-instance throughput reduces need for horizontal scaling

For workloads currently constrained by IOPS limits, switching to Managed Postgres can eliminate the need for expensive provisioned IOPS or IO-optimized configurations while delivering significantly better performance.

<h2 id="references">
  References
</h2>

The complete benchmark data, configurations, and detailed metrics are available in our [benchmark results spreadsheet](https://docs.google.com/spreadsheets/d/17TLWmwNKZb3Ie1vSQqvjtqByHskvoX6CF2eQ_FRx1cA/edit?gid=845104392#gid=845104392).

<h2 id="resources">
  Additional resources
</h2>

* [PeerDB: Comparing Postgres managed services](https://blog.peerdb.io/comparing-postgres-managed-services-aws-azure-gcp-and-supabase)
* [pgbench documentation](https://www.postgresql.org/docs/current/pgbench.html)
* [Managed Postgres overview](/products/managed-postgres/overview)
* [Scaling your Postgres instance](/products/managed-postgres/scaling)
