실적 개요

이 페이지에서는 최적 조건에서 Spanner가 제공할 수 있는 대략적인 성능, 성능에 영향을 줄 수 있는 요소, Spanner 성능 문제 테스트 및 문제 해결을 위한 팁에 대해 설명합니다.

이 페이지의 정보는 GoogleSQL 및 PostgreSQL 데이터베이스 모두에 적용됩니다.

성능 및 스토리지 개선사항

모든 Spanner 리전 및 멀티 리전 인스턴스 구성에 성능 및 스토리지 개선사항이 출시됩니다. 이러한 성능 개선사항으로 인해 리전 및 멀티 리전 인스턴스 구성 모두에서 Spanner 노드의 처리량과 지연 시간이 향상됩니다. 일부 인스턴스 구성에서는 증가한 처리량 및 스토리지를 사용할 수 있습니다. 애플리케이션을 변경하거나 Spanner 인스턴스에서 직접 아무것도 구성하지 않아도 추가 비용 없이 제공되는 이러한 개선사항의 이점을 누릴 수 있습니다.

향상된 성능 처리량

다음 표는 성능이 개선된 인스턴스 구성의 대략적인 처리량(초당 쿼리 수)을 제공합니다. 인스턴스에 포함된 컴퓨팅 용량의 각 노드(처리 단위 1,000개)에 최대 50% 더 많은 처리량이 제공됩니다.

인스턴스 구성 유형 최대 읽기(리전별 QPS)   최대 쓰기(QPS 합계)
리전 22,500 또는 3,500
멀티 리전 15,000 또는 2,700

향상된 성능 처리량은 다음을 제외한 모든 Spanner 인스턴스 구성에서 사용할 수 있습니다.

  • 리전 인스턴스 구성: us-west4

  • 멀티 리전 인스턴스 구성: nam10, nam-eur-asia1

이러한 인스턴스 구성의 성능 처리량에 대한 자세한 내용은 일반 워크로드 성능을 참조하세요.

읽기는 읽기-쓰기 또는 읽기 전용 리전에서 제공될 수 있기 때문에 읽기 안내는 리전별로 제공되지만 쓰기 안내는 전체 구성에 해당합니다. 읽기 안내에서는 1KB의 단일 행을 읽고 있다고 가정합니다. 쓰기 안내에서는 행당 1KB 데이터로 단일 행을 쓴다고 가정합니다.

일반적으로 Spanner 인스턴스의 읽기 및 쓰기 처리량은 인스턴스에 컴퓨팅 용량(노드 또는 처리 단위)을 추가할 때 선형적으로 확장됩니다. 예를 들어 2개의 노드가 있는 단일 리전 Spanner 인스턴스가 초당 최대 45,000개의 읽기를 제공할 수 있는 경우 4개의 노드가 있는 단일 리전 Spanner 인스턴스는 초당 최대 90,000개의 읽기를 제공할 수 있습니다.

Spanner에서 원하는 워크로드 성능이 표시되지 않으면 성능 회귀 문제 해결에서 일반적인 원인을 참조하세요.

저장용량 증가

일부 Spanner 리전 및 멀티 리전 인스턴스 구성의 경우 인스턴스에 포함된 컴퓨팅 용량의 각 노드(처리 단위 1,000개)에서 10TB 증가한 스토리지 용량이 제공됩니다. 다음 표에서는 사용 가능한 스토리지 용량이 증가한 인스턴스 구성을 보여줍니다.

리전별 인스턴스 구성

africa-south1, asia-east1, asia-northeast2, asia-south1, asia-southeast1, australia-southeast1, europe-west3, europe-west4, southamerica-east1, us-central2, us-east1, us-east4, us-east7

멀티 리전 인스턴스 구성

asia1, nam6, nam7, nam8, nam14

일반적인 워크로드의 성능

사용 중인 인스턴스 구성에 향상된 성능 처리량이 적용되지 않은 경우 인스턴스에 포함된 컴퓨팅 용량의 각 노드(처리 단위 1,000개)에서 제공할 수 있는 대략적인 처리량(초당 쿼리 수)은 다음과 같습니다.

인스턴스 구성 유형 최대 읽기(리전별 QPS)   최대 쓰기(QPS 합계)
리전 15,000 또는 2,300
멀티 리전 (기본 구성별 분류) 10,000개 또는 1,800

선택적 읽기 전용 복제본을 허용하는 리전 인스턴스 구성의 경우 선택적 읽기 전용 복제본에서 초당 추가 5,000개의 읽기를 지원할 수 있습니다.

멀티 리전 구성의 성능

각 Spanner 멀티 리전 인스턴스 구성은 복제 토폴로지에 따라 성능 특성이 약간씩 다릅니다.

컴퓨팅 용량의 각 1,000개의 처리 단위(1노드)는 100% CPU에서 다음과 같은 최대 성능을 제공할 수 있습니다.

기본 구성 이름 최대 읽기 근사치(리전별 QPS) 최대 쓰기 근사치(QPS 합계)
asia1 15,000 2,700
asia2 15,000 2,700
eur3 15,000 2,700
eur5 15,000 2,700
eur6 15,000
선택사항인 읽기 전용 복제본당 7,500
2,700
nam3 15,000
선택사항인 읽기 전용 복제본당 7,500
2,700
nam6 us-central1us-east1에서 15,000,
us-west1us-west2[1]에서 7,500
2,700
nam7 15,000
선택사항인 읽기 전용 복제본당 7,500
2,700
nam8 15,000 2,700
nam9 15,000 2,700
nam10 10,000개 1,800
nam11 15,000
선택사항인 읽기 전용 복제본당 7,500
2,700
nam12 15,000 2,700
nam13 15,000 2,700
nam14 15,000 2,700
nam15 15,000 2,700
nam-eur-asia1 10,000개 1,000
nam-eur-asia3 15,000 1,500
  • [1]: us-west1us-west2는 리전당 2개의 복제본이 아닌 1개의 복제본을 포함하기 때문에 QPS 성능의 절반만 제공됩니다.

읽기는 어디서나 제공될 수 있기 때문에 읽기 안내는 리전별로 제공되지만 쓰기 안내는 전체 구성에 해당합니다. 읽기 및 쓰기 안내에서는 행당 1KB 데이터로 단일 행을 읽고 쓴다고 가정합니다.

Spanner에 대해 일반적인 워크로드 실행

용량 계획 시 항상 Spanner 인스턴스에 대해 일반적인 자체 워크로드를 실행하여 애플리케이션에 최적의 리소스 할당을 파악할 수 있습니다. Google의 PerfKit Benchmarker는 YCSB를 사용하여 클라우드 서비스를 벤치마킹합니다. Spanner용 PerfKitBenchmarker 튜토리얼에 따라 자신의 워크로드에 대한 테스트를 만들 수 있습니다. 그렇게 할 때 생성된 벤치마크가 프로덕션 환경의 다음 특성을 반영하도록 벤치마킹 구성 yaml 파일의 매개변수를 조정해야 합니다.

벤치마크 번호 재현

벤치마크 번호를 재현하려면 throughput_benchmark 폴더에 있는 해당 yaml 파일을 사용하여 PerfKit Benchmarker로 Spanner 벤치마킹 튜토리얼을 따르세요.

성능 개선이 수행된 인스턴스 구성의 인스턴스를 벤치마킹하려면 향상된 인스턴스 구성 중 하나에서 테스트가 실행 중인지 확인합니다.

영역 및 리전 장애 보호

프로덕션에서 워크로드를 실행할 때 전체 영역(리전 인스턴스의 경우) 또는 전체 리전(멀티 리전 인스턴스의 경우)이 손실될 경우 트래픽을 계속 처리할 수 있도록 충분한 컴퓨팅 용량을 프로비저닝하는 것이 중요합니다. 권장되는 최대 CPU에 대한 자세한 내용은 높은 CPU 사용량 알림을 참조하세요.

다음 단계