DAX 叢集調整大小指南 - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

DAX 叢集調整大小指南

本指南會為您提供建議,以便您為應用程式選擇合適的 Amazon DynamoDB Accelerator (DAX) 叢集大小和節點類型。這些指示會逐步引導您預估應用程式的 DAX 流量、選取叢集組態並加以測試。

如果您目前有 DAX 叢集,並且想評估叢集是否具有合適的節點數量與大小,請參考擴展DAX叢集

概觀

不論您是要建立新的叢集或維護現有叢集,為工作負載適當調整 DAX 叢集都很重要。隨著時間經過與應用程式工作負載變更,您也應該定期審視擴展決策來確保合適性。

此程序通常遵循下列步驟:

  1. 預估流量。在此步驟中,您將預測應用程式傳送至 DAX 的流量、流量的性質 (讀取比對寫入操作),以及預計的快取命中率。

  2. 負載測試。在此步驟中,您將建立叢集並向叢集傳送流量,來驗證上一個步驟的預估。請重複這個步驟直到找到合適的叢集組態為止。

  3. 生產監控。當應用程式在生產階段使用 DAX 時,務必監控叢集以持續確認叢集仍會隨著工作負載變更正確調整。

預估流量

典型 DAX 工作負載的特性有三個主要因素:

預估快取命中率

如果您已有 DAX 叢集,則可以使用ItemCacheHitsItemCacheMisses Amazon CloudWatch 指標來判斷快取命中率。快取命中率等於 ItemCacheHits /(ItemCacheHits + ItemCacheMisses)。如果您的工作負載包含 QueryScan 操作,也請查看 QueryCacheHitsQueryCacheMissesScanCacheHitsScanCacheMisses 指標。應用程式間的快取命中率會有所差異,而且非常容易受到叢集的存留時間 (TTL) 設定影響。使用 DAX 的應用程式通常有 85% 至 95% 的命中率。

預估讀取和寫入容量單位

如果您的應用程式已有 DynamoDB 表格,請查看ConsumedReadCapacityUnits和ConsumedWriteCapacityUnitsCloudWatch 指標。使用 Sum 統計數字,除以週期中的秒數。

如果您也已經有 DAX 叢集,請記得此 DynamoDB ConsumedReadCapacityUnits 指標只會考量快取未中。因此,如果要了解 DAX 叢集每秒處理的讀取容量單位,請將數字除以快取未中率 (即 1:快取命中率)。

如果您還沒有 DynamoDB 表格,請參閱有關讀取和寫入容量單位的文件,以根據應用程式的預估請求率、每個請求存取的項目以及項目大小來估算流量。

預估流量時,請將後續增長和預期/非預期的尖峰納入考量,來確保叢集有足夠的流量增加空間。

負載測試

預估流量後的下一步是測試負載叢集組態。

  1. 進行第一次負載測試時,建議您先從 dax.r4.large 節點類型開始,這是最低成本固定效能、記憶體最佳化的節點類型。

  2. 容錯叢集至少需要三個節點,分布於三個可用區域。在此情況下,如果有一個可用區域失效,則可用區域的有效數量會減少三分之一。進行第一次負載測試時,建議您先從兩個節點的叢集開始,這會模擬三個節點叢集中有一個可用區域失效的情形。

  3. 負載測試期間,請對您的測試叢集推動持續流量 (如上一步驟中所預估)。

  4. 在負載測試期間監控叢集的效能。

理想情況下,您在負載測試期間推動的流量概況,應該盡可能地符合應用程式實際流量。這包括操作的分配 (例如 70%GetItem、25%Query 和 5%PutItem)、各操作的請求率、每個請求的項目存取數和項目大小的分佈。如果要達到與應用程式預期相當的快取命中率,請密切注意測試流量中的金鑰分佈情形。

注意

對 T2 節點類型 (dax.t2.smalldax.t2.medium) 進行負載測試時請小心。T2 節點類型提供高載 CPU 效能,會根據節點的 CPU 點數餘額隨著時間變化。在 T2 節點上執行的 DAX 叢集可能看似正常運作,但只要有任何節點暴增超過本身執行個體的基準效能,節點就會消耗累積的 CPU 點數餘額。如果點數餘額不足,效能會逐漸降低至基準效能等級。

請在負載測試期間監控您的 DAX 叢集,來判斷為負載測試使用的節點類型是否合適。此外,也請在負載測試期間監控請求率與快取命中率,來確保測試基礎設施真的有在推動您想要的流量。

您應該留意所選叢集執行個體類型的網路位元組使用量。若超過 Amazon EC2 執行個體的可用基準頻寬,即表示您的叢集可能無法承受應用程式的工作負載,且需要進行擴展。

如果負載測試指出選取的叢集組態無法承受應用程式的工作負載,您應切換至更大的節點類型,尤其是在叢集的主節點上發現高 CPU 使用率、高移出率或高快取記憶體時更是如此。如果命中率一直很高,而且讀取與寫入流量的比率也很高的話,則建議您考慮為叢集新增更多節點。如果需要額外指導來了解何時該使用更大的節點類型 (垂直擴展) 或新增更多節點 (水平擴展),則請參閱 擴展DAX叢集

變更叢集組態後,請重複進行負載測試。