PostgresBench, Postgres 서비스 성능을 투명하게 비교 분석하다!
Postgres 서비스 성능 비교를 위한 PostgresBench가 공개되어, 다양한 서비스의 성능을 측정하고 결과를 공개함
pgbench를 기반으로, 표준화된 워크로드(Workload)를 사용하여 TPS, 지연 시간(Latency) 등의 성능 지표를 측정함
NVMe 스토리지(Storage)를 활용한 ClickHouse의 Postgres 서비스가 높은 성능을 보였으며, 스토리지 성능의 중요성을 강조함
오픈소스(Open Source)로 공개되어 누구나 벤치마크에 참여하고 결과를 검증할 수 있으며, 지속적인 개선을 기대함
PostgresBench의 벤치마크 방법론
PostgresBench는 ClickBench와 유사한 방식으로, 투명하고 재현 가능한 방법론을 사용하여 Postgres 서비스의 성능을 평가한다. pgbench를 활용하여 TPC-B와 유사한 워크로드(Workload)를 실행하며, 256개의 클라이언트와 16개의 스레드를 사용하여 실제 프로덕션 환경(Production Environment)을 시뮬레이션한다. 각 벤치마크는 600초 동안 실행되며, 평균 TPS, 평균 지연 시간, P95 및 P99 지연 시간을 측정하여 성능을 평가한다. 모든 설정과 결과는 공개되어 재현 가능성을 높였다.
스토리지 성능의 중요성
벤치마크 결과에 따르면, NVMe 스토리지(Storage)를 사용하는 ClickHouse의 Postgres 서비스가 다른 서비스에 비해 월등한 성능을 보였다. 이는 디스크 접근 지연 시간(Disk Access Latency)이 성능에 미치는 영향이 크다는 것을 시사한다. 특히, 쓰기 작업이 많은 워크로드(Workload)에서 스토리지 성능은 중요한 요소로 작용하며, NVMe는 이러한 요구사항을 충족하여 높은 TPS와 낮은 지연 시간을 제공한다. 데이터 격리 아키텍처(Data Isolation Architecture)를 통해 스토리지 병목 현상을 해결하는 것이 핵심이다.
Aurora, RDS, Neon, Crunchy Bridge 성능 비교
PostgresBench는 AWS Aurora, RDS, Neon, Crunchy Bridge 등 다양한 Postgres 서비스를 대상으로 벤치마크를 수행했다. 각 서비스는 4 vCPU/16GB RAM 및 16 vCPU/64 GB RAM 환경에서 테스트되었으며, HA(High Availability)는 비활성화하여 단일 노드(Single Node)의 성능을 측정했다. 벤치마크 결과는 각 서비스의 TPS(Transactions Per Second), 평균 지연 시간, P95 및 P99 지연 시간을 포함하며, 서비스별 인스턴스 크기에 따른 성능 변화를 보여준다. 데이터 미저장 정책(Zero-Retention Policy)을 통해 보안성을 강화했다.
오픈소스 벤치마크의 장점
PostgresBench는 오픈소스(Open Source)로 공개되어, 누구나 벤치마크에 참여하고 결과를 검증할 수 있다. 벤치마크 스크립트와 모든 raw 결과가 공개되어 있으며, 사용자는 자신의 시스템을 벤치마크에 추가하고 결과를 제출할 수 있다. 이는 벤치마크의 신뢰성을 높이고, 지속적인 개선을 가능하게 한다. 또한, 잘못된 설정이나 불공정한 환경을 발견하면 수정할 수 있도록 하여, 공정한 성능 비교(Fair Performance Comparison)를 지향한다.