실적 개요

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

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

성능 및 스토리지 개선사항

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

향상된 성능 처리량

모든 Spanner 인스턴스 구성에서 성능이 향상되고 처리량이 증가했습니다. 다음 표에서는 Spanner 인스턴스 구성의 대략적인 처리량(초당 쿼리 수)을 제공합니다.

인스턴스 구성 유형 최대 읽기 (리전별 QPS)   최대 쓰기 (QPS 합계)   처리량 최적화 쓰기를 사용한 최대 쓰기 (QPS 합계)
리전 22,500 또는 3,500 22,500
이중 리전 및 멀티 리전 15,000 또는 2,700 15,000

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

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

처리량 최적화 쓰기를 사용한 최대 쓰기 성능은 일괄 처리 지연 시간 100ms를 사용하여 달성됩니다.

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

Spanner에서 워크로드의 예상 성능이 표시되지 않는 경우 일반적인 원인에 대한 자세한 내용은 성능 회귀 문제 해결을 참조하세요.

저장용량 증가

모든 Spanner 리전, 이중 리전, 멀티 리전 인스턴스 구성의 경우 인스턴스에 포함된 컴퓨팅 용량의 각 노드 (처리 단위 1,000개)에서 증가한 스토리지 용량으로 10TB가 제공됩니다.

일반적인 워크로드의 성능

모든 Spanner 인스턴스 구성에서 성능이 향상되고 처리량이 증가했습니다.

리전 구성의 성능

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

최대 읽기 (리전별 QPS)   최대 쓰기 (QPS 합계)   처리량 최적화 쓰기를 사용한 최대 쓰기 (QPS 합계)
22,500 또는 3,500 22,500

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

이중 리전 구성 성능

컴퓨팅 용량의 처리 단위 각 1,000개(1노드)는 이중 리전 인스턴스 구성에서 다음과 같은 최대 성능(100% CPU에서)을 제공할 수 있습니다. 쓰기 처리량을 표의 숫자보다 높게 늘리려면 처리량 최적화 쓰기를 사용합니다.

기본 구성 이름 최대 읽기 근사치 (지역별 QPS) 최대 쓰기 근사치 (QPS 합계)
dual-region-australia1 15,000 2,700
dual-region-germany1 15,000 2,700
dual-region-india1 15,000 2,700
dual-region-japan1 15,000 2,700

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

멀티 리전 구성의 성능

각 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 15,000 2,700
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
nam16 15,000 2,700
nam-eur-asia1 15,000 1,500
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 사용량 알림을 참조하세요.

다음 단계