本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
本指南提供為您的應用程式選擇適當 Amazon DynamoDB Accelerator (DAX) 叢集大小和節點類型的建議。這些指示會逐步引導您預估應用程式的 DAX 流量、選取叢集組態並加以測試。
如果您目前有 DAX 叢集,並且想評估叢集是否具有合適的節點數量與大小,請參考 擴展DAX叢集。
概觀
不論您是要建立新的叢集或維護現有叢集,為工作負載適當調整 DAX 叢集都很重要。隨著時間經過與應用程式工作負載變更,您也應該定期審視擴展決策來確保合適性。
此程序通常遵循下列步驟:
-
預估流量。在此步驟中,您將預測應用程式傳送至 DAX 的流量、流量的性質 (讀取比對寫入操作),以及預計的快取命中率。
-
負載測試。在此步驟中,您將建立叢集並向叢集傳送流量,來驗證上一個步驟的預估。請重複這個步驟直到找到合適的叢集組態為止。
-
生產監控。當應用程式在生產階段使用 DAX 時,務必監控叢集以持續確認叢集仍會隨著工作負載變更正確調整。
預估流量
典型 DAX 工作負載的特性有三個主要因素:
預估快取命中率
如果您已有DAX叢集,您可以使用 ItemCacheHits
和 ItemCacheMisses
Amazon CloudWatch 指標來判斷快取命中率。快取命中率等於 ItemCacheHits
/(ItemCacheHits
+ ItemCacheMisses
)。如果您的工作負載包含 Query
或 Scan
操作,也請查看 QueryCacheHits
、QueryCacheMisses
、ScanCacheHits
與 ScanCacheMisses
指標。快取命中率因應用程式而異,且受到叢集的存留時間 (TTL) 設定的影響很大。使用 的應用程式典型命中率DAX為 85–95%。
預估讀取和寫入容量單位
如果您已有應用程式的 DynamoDB 資料表,請查看 ConsumedReadCapacityUnits
和 ConsumedWriteCapacityUnits
CloudWatch 指標。使用 Sum
統計數字,除以週期中的秒數。
如果您已經有DAX叢集,請記住,DynamoDB ConsumedReadCapacityUnits
指標僅考慮快取遺失。因此,如果要了解 DAX 叢集每秒處理的讀取容量單位,請將數字除以快取未中率 (1 - 快取命中率)。
如果您還沒有 DynamoDB 資料表,請參閱有關讀取和寫入容量單位的文件,以根據應用程式的預估請求率、每個請求存取的項目和項目大小來估算流量。
預估流量時,請將後續增長和預期/非預期的尖峰納入考量,來確保叢集有足夠的流量增加空間。
負載測試
預估流量後的下一步是測試負載叢集組態。
-
進行第一次負載測試時,建議您先從
dax.r4.large
節點類型開始,這是最低成本固定效能、記憶體最佳化的節點類型。 -
容錯叢集至少需要三個節點,分布於三個可用區域。在此情況下,如果有一個可用區域失效,則可用區域的有效數量會減少三分之一。進行第一次負載測試時,建議您先從兩個節點的叢集開始,這會模擬三個節點叢集中有一個可用區域失效的情形。
-
負載測試期間,請對您的測試叢集推動持續流量 (如上一步驟中所預估)。
-
在負載測試期間監控叢集的效能。
理想情況下,您在負載測試期間推動的流量概況,應該盡可能地符合應用程式實際流量。這包括操作的分配 (例如 70%GetItem
、25%Query
和 5%PutItem
)、各操作的請求率、每個請求的項目存取數和項目大小的分佈。如果要達到與應用程式預期相當的快取命中率,請密切注意測試流量中的金鑰分佈情形。
注意
請在負載測試期間監控您的 DAX 叢集,來判斷為負載測試使用的節點類型是否合適。此外,也請在負載測試期間監控請求率與快取命中率,來確保測試基礎設施真的有在推動您想要的流量。
您應該留意所選叢集執行個體類型的網路位元組使用量。超過 Amazon EC2執行個體可用的基準頻寬,表示您的叢集可能無法維持應用程式的工作負載,且需要擴展。
如果負載測試指出選取的叢集組態無法維持應用程式的工作負載,您應該切換到較大的節點類型,特別是當您在叢集的主要節點上看到高CPU使用率、高移出率或高快取記憶體使用率時。如果命中率一直很高,而且讀取與寫入流量的比率也很高的話,則建議您考慮為叢集新增更多節點。如果需要額外指導來了解何時該使用更大的節點類型 (垂直擴展) 或新增更多節點 (水平擴展),則請參閱 擴展DAX叢集。
變更叢集組態後,請重複進行負載測試。