핵심 요약
- 표준
pgbench테스트를 사용해 ClickHouse가 관리하는 Postgres와 AWS RDS(프로비저닝된 IOPS 16k), Aurora IO Optimized의 성능을 벤치마크했습니다 - 성능: ClickHouse의 NVMe 기반 Postgres는 IO 집약적 워크로드에서 4.3~9배 더 빠른 성능을 제공하며, CPU 바운드 시나리오에서는 12% 더 빠릅니다
- 높은 transaction 처리율, 낮은 지연 시간의 데이터 액세스, IO 병목 없는 예측 가능한 성능이 필요한 빠르게 성장하는 AI 기반 워크로드에 이상적입니다
벤치마크 개요
pgbench를 사용해 종합적인 성능 테스트를 수행했습니다.
벤치마크
테스트 1: IO 집약적 - 읽기+쓰기 (500 GB 데이터셋)
- TPS 326% 더 높음 (4.3배 더 빠름)
- TPS 345% 더 높음 (4.5배 더 빠름)
설정
| 구성 | ClickHouse가 관리하는 Postgres | 16k IOPS RDS | Aurora IO Optimized |
|---|---|---|---|
| PG 버전 | 17 | 17 | 17 |
| vCPU 수 | 16 | 16 | 16 |
| RAM | 64 GB | 64 GB | 128 GB |
| 디스크 크기 | 1 TB | 1 TB | 1 TB |
| 디스크 유형 | NVMe (무제한 IOPS) | 네트워크 연결형 (16,000 IOPS) | 네트워크 연결형 (IO Optimized) |
테스트 2: IO 집약적 - 읽기 전용 (500 GB 데이터셋)
- TPS 802% 더 높음 (9.0배 더 빠름)
설정
| 구성 | ClickHouse가 관리하는 Postgres | 16k IOPS RDS |
|---|---|---|
| PG 버전 | 17 | 17 |
| vCPUs | 16 | 16 |
| RAM | 64 GB | 64 GB |
| 디스크 크기 | 1 TB | 1 TB |
| 디스크 유형 | NVMe (IOPS 무제한) | 네트워크 연결형 (16,000 IOPS) |
테스트 3: CPU 집약적(CPU Intensive) (데이터가 메모리에 모두 올라감)
- RDS PostgreSQL보다 TPS가 12.3% 더 높음
설정
| 구성 | ClickHouse가 관리하는 Postgres | RDS PostgreSQL |
|---|---|---|
| PG 버전 | 17 | 17 |
| vCPUs | 2 | 2 |
| RAM | 8 GB | 8 GB |
| 디스크 유형 | NVMe | 네트워크 연결형 (gp3) |
성능 요약
주요 결과
- IO 집약적 읽기+쓰기 워크로드: RDS(16k IOPS) 및 Aurora IO Optimized 대비 TPS가 4.3~4.5배 더 높았습니다
- IO 집약적 읽기 워크로드: 16k IOPS를 사용하는 RDS 대비 TPS가 9배 더 높았습니다
- CPU 바운드 워크로드: RDS 대비 TPS가 12% 더 높았습니다
Postgres by ClickHouse가 뛰어난 경우
- ClickHouse와의 원활한 통합을 통해 OLAP 워크로드를 기본적으로 분석할 수 있고, 높은 처리량의 데이터 수집, 빈번한 업서트, 실시간 피처 업데이트가 필요한 빠르게 성장하는 AI 기반 워크로드
- 쓰기, 업데이트 또는 읽기/쓰기 혼합 작업이 빈번한 애플리케이션
- 예측 가능하면서도 고성능 스토리지가 필요한 애플리케이션
- 현재 기존 관리형 Postgres 서비스의 IOPS 제한으로 제약을 받는 애플리케이션
NVMe 아키텍처의 장점
| 항목 | NVMe 스토리지 (Managed Postgres) | 네트워크 연결 스토리지 (프로비저닝된 IOPS) |
|---|---|---|
| IOPS | 10만에서 사실상 무제한 | 16,000으로 프로비저닝됨 |
| 네트워크 홉 수 | 0회(로컬 디바이스) | 모든 디스크 작업마다 네트워크 왕복이 필요함 |
| 성능 스케일링 | 동시성이 증가하면 선형적으로 확장됨 | 프로비저닝된 IOPS에 따라 제한됨 |
비용 효율성
- 달러당 더 높은 처리량: 16k 프로비저닝된 IOPS를 사용하는 RDS 및 Aurora IO Optimized와 비교해 4~9배 더 높은 TPS를 달성합니다
- 예측 가능한 비용: 추가 IOPS 용량을 프로비저닝할 필요가 없습니다. 무제한 로컬 IOPS가 포함됩니다
- 더 낮은 컴퓨트 요구 사항: 효율적인 I/O 덕분에 더 작은 인스턴스 크기로도 목표 성능을 달성할 수 있습니다
- 읽기 레플리카 필요성 감소: 단일 인스턴스의 높은 처리량으로 수평 스케일링의 필요성이 줄어듭니다