Neptune Serverless 資料庫叢集和執行個體的其他組態 - Amazon Neptune

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

Neptune Serverless 資料庫叢集和執行個體的其他組態

除了針對 Neptune Serverless 資料庫叢集設定最小和最大容量之外,還有其他幾個需要考慮的組態選項。

在資料庫叢集中結合無伺服器與佈建的執行個體

資料庫叢集不一定只是無伺服器 - 您可以建立無伺服器執行個體與佈建執行個體的組合 (混合組態)。

例如,假設您需要的寫入容量超過無伺服器執行個體中所能提供的。在此情況下,您可以使用常大的佈建寫入器設定叢集,並仍對讀取器使用無伺服器執行個體。

或者,假設叢集上的寫入工作負載有變化,但讀取工作負載穩定。在此情況下,您可以使用無伺服器寫入器和一個或多個佈建讀取器來設定叢集。

如需如何建立混合組態資料庫叢集的相關資訊,請參閱 使用 Amazon Neptune Serverless

設定 Neptune Serverless 執行個體的提升層

對於包含多個無伺服器執行個體或佈建和無伺服器執行個體混合的叢集,請注意每個無伺服器執行個體的提升層。比起佈建的資料庫執行個體,此設定控制無伺服器執行個體更多的行為。

在 AWS Management Console,您可以使用 [建立資料庫]、[修改執行個體] 和 [新增讀取器] 頁面的 [其他組態] 下的 [容錯移轉優先順序] 您可以在資料庫頁面的選用優先順序方案欄中看到現有執行個體的這個屬性。您也可以在資料庫叢集或執行個體的詳細資訊頁面上查看此屬性。

對於佈建的執行個體,選擇第 0–15 層僅決定 Neptune 在容錯移轉操作期間選擇將讀取器執行個體提升為寫入器的順序。對於 Neptune Serverless 讀取器執行個體,層數也會決定執行個體縱向擴展以符合寫入器執行個體的容量,還是僅根據其自已的工作負載獨立擴展。

第 0 層或第 1 層的 Neptune Serverless 讀取器執行個體保持至少與寫入器執行個體一樣高的最小容量,以便它們準備好在容錯移轉時從寫入器接管。如果寫入器是佈建的執行個體,Neptune 會估計相等的無伺服器容量,並使用該估計值做為無伺服器讀取器執行個體的最小容量。

第 2–15 層中的 Neptune Serverless 讀取器執行個體對其最小容量沒有相同的限制條件,並與寫入器各自獨立擴展。當它們閒置時,它們會縮小到叢集容量範圍中指定的最小NCU值。不過,如果讀取工作負載快速激增,這可能會導致問題。

保持讀取器容量與寫入器容量一致

要記住的一件重要事項是,您要確保您的讀取器執行個體可以跟上您的寫入器執行個體,以防止過長的複寫延遲。在兩種情況下,無伺服器讀取器執行個體不會自動與寫入器執行個體同步縮減,這是特別需要關注的問題:

  • 當佈建您的寫入器,且您的讀取器是無伺服器時。

  • 當您的寫入器是無伺服器,且您的無伺服器讀取器位於提升層 2-15 時。

在這兩種情況下,請將最小無伺服器容量設定為符合預期的寫入器容量,以確保讀取器操作不會逾時且可能導致重新啟動。在佈建的寫入器執行個體的情況下,請設定最小容量以符合佈建執行個體的容量。在無伺服器寫入器的情況下,最佳設定可能較難預測。

由於執行個體容量範圍是在叢集層級設定,因此所有無伺服器執行個體都是由相同的最小和最大容量設定控制。第 0 層和第 1 層中的讀取器執行個體會與寫入器執行個體同步縮減,但提升層 2-15 中的執行個體彼此獨立擴展,且與寫入器執行個體也是各自獨立擴展,取決於它們的工作負載。如果您將最小容量設得太低,第 2 層到第 15 層中的閒置執行個體可能縮減規模後太低,以致無法足夠快速縱向擴展來處理寫入器活動中突然激增的情況。

避免將逾時值設得太高

如果您在無伺服器執行個體上將查詢逾時值設得太高,可能會產生非預期的成本。

若沒有合理的逾時設定,您可能會不小心發出一個查詢,需要功能強大且昂貴的執行個體類型,且會持續執行很長時間,從而產生您從未預期的成本。您可以使用查詢逾時值來避免此情況,而這些逾時值滿足大部分的查詢,且只會導致執行時間異常長的查詢逾時。

對於使用參數設定的一般查詢逾時值,以及使用查詢提示設定的每個查詢逾時值,都是如此。

最佳化您的 Neptune Serverless 組態

如果 Neptune Serverless 資料庫叢集未針對其正在執行的工作負載進行調校,您可能會注意到它並未以最佳方式執行。您可以調整最小和/或最大容量設定,以便其可在沒有遇到記憶體問題的情況下進行擴展。

  • 增加叢集的最小容量設定。這可以更正下列情況:閒置執行個體縮減至其中記憶體少於應用程式和已啟用功能所需的容量。

  • 增加叢集的最大容量設定。這可以更正下列情況:忙碌的資料庫無法縱向擴展至具有足夠記憶體的容量,以處理工作負載和任何已啟用的記憶體密集型功能。

  • 變更有問題執行個體上的工作負載。例如,您可以將讀取器執行個體新增至叢集,以將讀取負載分散至更多的執行個體中。

  • 調校應用程式的查詢,使其使用更少的資源。

  • 嘗試使用大於 Neptune Serverless 內NCUs可用上限的佈建執行個體,以查看它是否更適合工作負載的記憶體和CPU需求。