VM 上的 AlloyDB Omni 效能測試方法

選取說明文件版本:

本文說明在 VM 上對 AlloyDB Omni 執行效能測試的建議做法。本文假設您已熟悉 PostgreSQL。

評估成效時,請先定義您希望從測試中瞭解哪些資訊。例如:

  • 系統可達到的最大處理量為何?
  • 特定查詢或工作負載需要多久時間?
  • 效能如何隨著資料量增加而變化?
  • 這兩個系統的效能比較結果為何?
  • 資料欄引擎可將查詢效能的回應時間縮短多少?
  • 資料庫可處理多少負載,我才需要考慮升級至效能更強大的機器?

瞭解成效研究的目標,有助於判斷要執行哪些基準測試、需要哪些環境,以及要收集哪些指標。

可重複性

如要根據效能測試做出結論,測試結果必須可重複。如果測試結果差異很大,就很難評估您在應用程式或系統設定中所做變更的影響。多次執行測試或延長測試時間,有助於提供更多資料,進而降低變異量。

理想情況下,效能測試應在與其他系統隔離的系統上執行。如果執行環境中的外部系統會影響應用程式效能,可能會導致您做出錯誤結論。在多租戶雲端環境中執行時,通常無法完全隔離,因此結果可能會有較大差異

可重複性的一部分是確保測試工作負載在執行之間保持不變。只要隨機性不會導致應用程式行為出現顯著差異,測試輸入內容中的一些隨機性是可以接受的。如果隨機產生的用戶端輸入內容在每次執行時都會改變讀取和寫入的組合,效能就會有顯著差異。

資料庫大小、快取和 I/O 模式

請確保測試的資料量能代表應用程式。如果資料量達到數百 GB 或 TB,但測試時只使用少量資料,可能無法真實呈現應用程式的效能。資料集大小也會影響查詢最佳化工具的選擇。針對小型測試資料表執行的查詢可能會使用資料表掃描,這類查詢在較大規模時效能不佳,而且您不會在這個設定中找出缺少的索引。

盡量複製應用程式的 I/O 模式。讀取與寫入的比率對應用程式的效能設定檔非常重要。

基準時間長度

在複雜的系統中,系統執行時會維護許多狀態資訊:建立資料庫連線、填入快取、產生程序和執行緒。在效能測試開始時,如果工作負載的執行階段太短,這些元件的初始化可能會耗用系統資源,並對測得的效能造成負面影響。

建議您執行效能測試至少 20 分鐘,盡可能降低系統暖機的影響。在啟動後且時間足夠長的穩定狀態下評估效能,確保涵蓋資料庫作業的所有層面。舉例來說,資料庫檢查點是資料庫系統的重要功能,對效能有重大影響。如果執行時間短於檢查點間隔的基準測試,應用程式行為中的這項重要因素就會遭到隱藏。

有條理地測試

調整成效時,請一次只變更一個變數。如果您在兩次實驗之間變更多個變數,就無法找出是哪個變數改善了成效。事實上,多項變更可能會互相抵銷,因此您不會看到適當變更帶來的效益。如果資料庫伺服器使用率過高,請嘗試改用 vCPU 數量較多的機器,同時保持負載不變。如果資料庫伺服器未充分利用,請嘗試增加負載,同時保持 CPU 設定不變。

網路拓撲和延遲

系統的網路拓撲可能會影響效能測試結果。可用區之間的延遲時間不盡相同。進行效能測試時,請確保用戶端和資料庫叢集位於相同可用區,盡可能縮短網路延遲時間,並達到最佳效能。對於處理量高、交易時間短的應用程式,這點尤其重要,因為網路延遲時間可能是整體交易回應時間的重要組成部分。

比較兩個不同系統的效能時,請確保兩者的網路拓撲相同。請注意,網路延遲時間的變動無法完全消除,即使在同一個可用區內,也可能因基礎網路拓撲而有延遲時間差異。

部署應用程式時,您可能想考慮一般高用量網頁應用程式,進一步瞭解跨區域延遲的影響。應用程式的負載平衡器會將要求傳送至部署在多個可用區的多部網頁伺服器,以確保高可用性。由於跨區域延遲時間差異,延遲時間可能會因處理要求的網路伺服器而異。

下圖顯示使用 AlloyDB Omni 的網頁應用程式一般架構。用戶端要求會由負載平衡器處理,並轉送至其中一個網路伺服器。所有網路伺服器都連線至 AlloyDB Omni。部分伺服器與 AlloyDB Omni 執行的區域不同,因此發出資料庫要求時會遇到較高的延遲。

顯示典型網頁應用程式架構的流程圖。
圖 1:一般網頁應用程式架構圖。可用區 B 的網路伺服器與 AlloyDB Omni 資料庫位於相同可用區,因此向資料庫發出要求時,延遲時間應該會較短。

資源監控

如要提升資料庫系統的效能,您必須監控資料庫系統和使用資料庫系統的用戶端系統資源用量。同時監控這兩個系統,即可確保用戶端系統提供足夠的工作負載,在資料庫系統中取得有意義的測量結果。監控受測系統的資源使用率至關重要。監控用於驅動工作負載的用戶端系統資源使用率,也同樣重要。舉例來說,如要判斷資料庫系統在 CPU 資源耗盡前可支援的用戶端數量上限,您需要有足夠的用戶端系統,才能產生工作負載,用盡資料庫系統中的所有 CPU 資源。如果產生負載的用戶端電腦本身 CPU 不足,您就無法充分運用資料庫系統。

擴充性測試

擴充性測試是效能測試的另一個面向。擴充性是指成效指標隨著工作負載特性變化而改變的情形。擴充性研究的例子包括:

  • 並行要求數量增加時,處理量和回應時間會如何變化?
  • 資料庫大小增加時,處理量和回應時間會如何變化?

擴充性測試包含多次執行工作負載,每次執行時都會改變單一維度,並收集及繪製一或多個指標。這類測試可協助您判斷系統中存在哪些瓶頸、系統在特定設定下可處理的負載量、系統可支援的最大負載量,以及負載量超出這些層級時系統的行為。

機器大小注意事項

AlloyDB Omni 為 Postgres 導入許多新功能,可提升資料庫的穩定性和可用性。執行這項作業所需的監控功能會使用執行 AlloyDB Omni 的機器資源。極小型機器的記憶體和 CPU 資源有限,因此建議至少使用四個 vCPU 的機器進行基準測試。