本頁面說明 Spanner 在最佳條件下可提供的約略效能、可能影響效能的因素,以及測試和疑難排解 Spanner 效能問題的提示。
本頁資訊適用於 GoogleSQL 和 PostgreSQL 資料庫。
效能和儲存空間改善
所有 Spanner 單區域、雙區域和多區域執行個體設定,都已推出效能和儲存空間改善項目。您不需要對應用程式進行任何變更,也不必手動設定 Spanner 執行個體,即可享有這些改善項目,而且不需額外付費。這些效能改善項目可提高所有執行個體設定中 Spanner 節點的處理量,並縮短延遲時間。
提高效能處理量
所有 Spanner 執行個體設定都提升了效能,並提供更高的處理量。下表列出這些 Spanner 執行個體設定的約略處理量 (每秒查詢次數):
| 執行個體設定類型 | 讀取量尖峰 (每個區域的 QPS) | 寫入作業尖峰 (QPS 總計) | 使用處理量最佳化寫入的寫入作業峰值 (QPS 總計) | ||
|---|---|---|---|---|---|
| 單一區域 | SSD:22,500 HDD:1,500 |
或 | SSD:3,500 HDD:3,500 |
SSD:22,500 HDD:22,500 |
|
| 雙區域和多區域 | SSD:15,000 HDD:1,000 |
或 | SSD:2,700 HDD:2,700 |
SSD:15,000 HDD:15,000 |
如要瞭解這些執行個體設定的效能處理量,請參閱「一般工作負載的效能」。如要進一步瞭解如何使用固態硬碟 (SSD) 和傳統硬碟 (HDD) 儲存資料,請參閱「分級式儲存空間總覽」。
讀取指引是依區域提供 (因為讀取作業可由任何讀寫或唯讀區域提供),寫入指引則適用於整個設定。讀取指南假設您讀取的是 1 KB 的單一資料列。寫入指南假設您是以每列 1 KB 的資料量寫入單一資料列。
將批次處理延遲時間設為 100 毫秒,即可透過輸送量最佳化寫入功能,達到寫入效能高峰。詳情請參閱「輸送量最佳化寫入」。
一般來說,當您為 Spanner 執行個體新增更多運算資源 (節點或處理單元) 時,執行個體的讀取和寫入處理量都會線性增加。舉例來說,如果單一區域 Spanner 執行個體有 2 個節點,每秒最多可提供 45,000 次讀取,則有 4 個節點的單一區域 Spanner 執行個體,每秒最多可提供 90,000 次讀取。
如果 Spanner 工作負載未達到預期效能,請參閱「排解查詢效能退步問題」,瞭解常見原因。
更多儲存空間
對於所有 Spanner 單一區域、雙區域和多區域執行個體設定,執行個體中每個運算資源節點 (1,000 個處理單元) 的儲存空間容量都增加 10 TiB。
一般工作負載效能
所有 Spanner 執行個體設定都提升了效能,並提供更高的處理量。
區域設定的效能
在區域執行個體設定中,每 1,000 個處理單元 (1 個節點) 的運算資源可提供下列尖峰效能 (CPU 使用率 100%):
| 讀取量尖峰 (每個區域的 QPS) | 寫入作業尖峰 (QPS 總計) | 使用處理量最佳化寫入的寫入作業峰值 (QPS 總計) | ||
|---|---|---|---|---|
| SSD:22,500 HDD:1,500 |
或 | SSD:3,500 HDD:3,500 |
SSD:22,500 HDD:22,500 |
如果區域執行個體設定支援選用的唯讀副本,則每個選用的唯讀副本可為 SSD 儲存空間提供每秒額外 7,500 次讀取,為 HDD 儲存空間提供每秒額外 500 次讀取。
雙區域設定的效能
在雙區域執行個體設定中,每 1,000 個處理單元 (1 個節點) 的運算資源可提供下列尖峰效能 (CPU 使用率 100%)。如要提高寫入處理量,使其超過表格中的數字,請使用處理量最佳化寫入。詳情請參閱「最佳化輸送量寫入」。
| 基本設定名稱 | 讀取作業尖峰值 (每個區域的 QPS,約略值) | 寫入作業尖峰值概算 (QPS 總計) |
|---|---|---|
dual-region-australia1 |
SSD:15,000 HDD:1,000 |
SSD:2,700 HDD:2,700 |
dual-region-germany1 |
SSD:15,000 HDD:1,000 |
SSD:2,700 HDD:2,700 |
dual-region-india1 |
SSD:15,000 HDD:1,000 |
SSD:2,700 HDD:2,700 |
dual-region-japan1 |
SSD:15,000 HDD:1,000 |
SSD:2,700 HDD:2,700 |
讀取指南適用於各個區域,因為任何區域都能提供讀取服務,而寫入指南則適用於整個設定。這項指引假設您讀取及寫入單一資料列,每列資料量為 1 KB。
多區域設定的效能
每個 Spanner 多區域執行個體設定的效能特性,會因複製拓撲而略有不同。使用最佳化處理量的寫入作業,可提高寫入處理量,超過表格中的數字。
每 1,000 個處理單元 (1 個節點) 的運算資源可提供下列尖峰效能 (CPU 使用率 100%):
| 基本設定名稱 | 讀取作業尖峰值 (每個區域的 QPS,約略值) | 寫入作業尖峰值概算 (QPS 總計) |
|---|---|---|
asia1 |
SSD:15,000 HDD:1,000 |
SSD:2,700 HDD:2,700 |
asia2 |
SSD:15,000 HDD:1,000 |
SSD:2,700 HDD:2,700 |
eur3 |
SSD:15,000 HDD:1,000 |
SSD:2,700 HDD:2,700 |
eur5 |
SSD:15,000 HDD:1,000 |
SSD:2,700 HDD:2,700 |
eur6 |
SSD:15,000,每個選用唯讀副本 7,500 HDD:1,000,每個選用唯讀副本 500 |
SSD:2,700 HDD:2,700 |
eur7 |
SSD:15,000,每個選用唯讀副本 7,500 HDD:1,000,每個選用唯讀副本 500 |
SSD:2,700 HDD:2,700 |
nam3 |
SSD:15,000,每個選用唯讀副本 7,500 HDD:1,000,每個選用唯讀副本 500 |
SSD:2,700 HDD:2,700 |
nam6 |
SSD:us-central1 和 us-east1 為 15,000us-west1 和 us-west2 為 7,500HDD: us-central1 和 us-east1 為 1,000us-west1 和 us-west2 為 500[1] |
SSD:2,700 HDD:2,700 |
nam7 |
SSD:15,000,每個選用唯讀副本 7,500 HDD:1,000,每個選用唯讀副本 500 |
SSD:2,700 HDD:2,700 |
nam8 |
SSD:15,000 HDD:1,000 |
SSD:2,700 HDD:2,700 |
nam9 |
SSD:15,000 HDD:1,000 |
SSD:2,700 HDD:2,700 |
nam10 |
SSD:15,000 HDD:1,000 |
SSD:2,700 HDD:2,700 |
nam11 |
SSD:15,000,每個選用唯讀副本 7,500 HDD:1,000,每個選用唯讀副本 500 |
SSD:2,700 HDD:2,700 |
nam12 |
SSD:15,000 HDD:1,000 |
SSD:2,700 HDD:2,700 |
nam13 |
SSD:15,000 HDD:1,000 |
SSD:2,700 HDD:2,700 |
nam14 |
SSD:15,000 HDD:1,000 |
SSD:2,700 HDD:2,700 |
nam15 |
SSD:15,000 HDD:1,000 |
SSD:2,700 HDD:2,700 |
nam16 |
SSD:15,000 HDD:1,000 |
SSD:2,700 HDD:2,700 |
nam-eur-asia1 |
SSD:15,000 HDD:1,000 |
SSD:2,700 HDD:2,700 |
nam-eur-asia3 |
SSD:15,000 HDD:1,000 |
SSD:2,700 HDD:2,700 |
- [1]:
us-west1和us-west2每個區域只有一個副本,而非兩個,因此只能提供一半的 QPS 效能。
讀取指南適用於各個區域,因為任何區域都能提供讀取服務,而寫入指南則適用於整個設定。這項指引假設您讀取及寫入單一資料列,每列資料量為 1 KB。
對 Spanner 執行一般工作負載
規劃容量時,請務必針對 Spanner 執行個體執行一般工作負載,以便找出最適合應用程式的資源分配方式。Google 的 PerfKit Benchmarker 使用 YCSB 進行雲端服務基準測試。如要為自己的工作負載建立測試,請按照 Spanner 適用的 PerfKitBenchmarker 教學課程操作。執行這項操作時,請調整基準測試設定 yaml 檔案中的參數,確保產生的基準測試反映正式環境中的下列特性:
- 資料庫總大小
- 結構定義 (例如資料列索引鍵大小、資料欄數量和資料列資料大小)
- 資料存取模式 (資料列索引鍵分布)
- 讀取與寫入作業的混合比例
- 查詢類型和複雜度
重現基準測試數據
如要重現基準測試數據,請按照使用 PerfKit Benchmarker 進行 Spanner 基準測試教學課程,使用 throughput_benchmark 資料夾中對應的 yaml 檔案。
如要對效能提升的執行個體設定進行基準測試,請確保測試是在其中一個經過改善的執行個體設定中執行。
可用區和區域故障防護
在正式環境中執行工作負載時,請務必佈建足夠的運算能力,以便在整個可用區 (區域執行個體) 或整個區域 (雙區域和多區域執行個體) 遺失時,繼續提供流量。如要進一步瞭解建議的 CPU 上限,請參閱「CPU 使用率過高的快訊」。
後續步驟
- 瞭解如何設計 Spanner 結構定義。
- 瞭解如何監控 Spanner 效能。
- 瞭解如何排解 Key Visualizer 的問題。
- 瞭解 Spanner 定價。