選擇 Amazon Neptune 的執行個體類型 - Amazon Neptune

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

選擇 Amazon Neptune 的執行個體類型

Amazon Neptune 提供許多不同的執行個體大小和系列,提供適合於不同圖形工作負載的不同功能。本節旨在協助您選擇符合需求的最佳執行個體類型。

如需這些系列中每個執行個體類型的定價,請參閱 Neptune 定價頁面

執行個體資源配置的概觀

Neptune 中使用的每個 Amazon EC2執行個體類型和大小都會提供定義的運算 (vCPUs) 和系統記憶體量。Neptune 的主要儲存體位於叢集中的資料庫執行個體外部,可讓運算和儲存容量彼此獨立擴展。

本節專注於運算資源的擴展方式,以及各種不同執行個體系列之間的差異。

在所有執行個體系列中,vCPU 資源都會配置為支援每個 v 兩 (2) 個查詢執行緒CPU。此支援是由執行個體大小決定。確定給定 Neptune 資料庫執行個體的適當大小時,您需要考慮應用程式可能的並行性,以及查詢的平均延遲。您可以估計 vCPUs 所需的數量,如下所示,其中延遲是以秒為單位測量,並行的測量是以每秒的目標查詢數來測量:

vCPUs=(latencyxconcurrency)/2
注意

SPARQL 查詢、 openCypher 查詢和 Gremlin 讀取查詢使用DFE查詢引擎,在某些情況下,每個查詢可以使用多個執行緒。在最初調整資料庫叢集的大小時,請先假設每個查詢每次執行都會取用單一執行緒,並且如果您觀察到有背壓進入查詢佇列,則會縱向擴展。這可以透過使用 /gremlin/status/oc/status/sparql/status 來觀察APIs,也可以使用 MainRequestsPendingRequestsQueue CloudWatch 指標來觀察。

每個執行個體上的系統記憶體分為兩個主要配置:緩衝集區快取和查詢執行緒記憶體。

執行個體中約有三分之二的可用記憶體會配置給緩衝集區快取。緩衝集區快取用來快取圖形的最近使用元件,以便重複存取這些元件的查詢可以進行更快的存取。具有較大系統記憶體數量的執行個體擁有較大的緩衝集區快取,可在本機儲存更多圖形。使用者可以透過監控 中可用的緩衝區快取命中和遺失指標,來調整緩衝區集區快取的適當數量 CloudWatch。

如果快取命中率始終在一段時間內掉至 99.9% 以下,您可能會想要增加執行個體的大小。這表明緩衝集區不夠大,而且引擎必須頻繁地從基礎儲存磁碟區擷取資料。

剩餘的三分之一系統記憶體會平均分佈在查詢執行緒之間,還有一些記憶體留給作業系統和小型動態集區,供執行緒視需要使用。每個執行緒可用的記憶體會從一個執行個體大小略為增加到下一個執行個體大小,直到 8xl 執行個體類型,此大小會使每個執行緒配置的記憶體達到上限。

新增更多執行緒記憶體的時間是當您遇到 OutOfMemoryException() 時OOM。OOM 當一個執行緒需要超過分配給它的記憶體上限 (這與整個執行個體用完記憶體不同) 時,就會發生例外狀況。

t3t4g 執行個體類型

執行個體的 t3t4g 系列提供低成本選項,用於開始使用圖形資料庫,也可用於初始開發和測試。這些執行個體符合 Neptune 免費方案的資格,可讓新客戶在獨立 AWS 帳戶內使用 Neptune 前 750 個執行個體小時免費使用 Neptune,或在具有合併帳單 AWS 的組織 (付款人帳戶) 下彙總。

t3t4g 執行個體僅以中型組態 ( t3.mediumt4g.medium) 提供。

它們不適用於生產環境。

因為這些執行個體具有的資源非常有限,所以不建議用於測試查詢執行時間或整體資料庫效能。若要評估查詢效能,請升級至其他執行個體系列之一。

執行個體類型的 r4 系列

DEPRECATED – 系列r4是在 2018 年推出 Neptune 時提供,但現在較新的執行個體類型提供了更好的價格/效能。從引擎 1.1.0.0 版開始,Neptune 不再支援 r4 執行個體類型。

執行個體類型的 r5 系列

r5 系列包含記憶體優化執行個體類型,適用於大多數圖形使用案例。r5 系列包含從 r5.large 最高可至 r5.24xlarge 的執行個體。隨著大小的增加,它們會以線性方式擴展運算效能。例如, r5.xlarge(4 vCPUs 和 32GiB 的記憶體) 具有 r5.large(2 vCPUs 和 vCPUs 16GiB 的記憶體) 的兩倍,而 r5.2xlarge(8 vCPUs 和 64GiB 的記憶體) 具有 的兩倍 vCPUs 和 的記憶體r5.xlarge。您可以預期查詢效能會隨著運算容量直接最高擴展至 r5.12xlarge 執行個體類型。

r5 執行個體系列具有 2 個插槽的 Intel CPU架構。r5.12xlarge 和較小的類型會使用單插槽和該單插槽處理器所擁有的系統記憶體。r5.16xlarger5.24xlarge 類型會使用這兩個插槽和可用記憶體。因為雙插槽架構中的兩個實體處理器之間需要一些記憶體管理負荷,所以從 r5.12xlarge 擴展到 r5.16xlarger5.24xlarge 執行個體類型的效能提升並不像您以較小的大小縱向擴展那樣呈線性提升。

執行個體類型的 r5d 系列

Neptune 具有查詢快取功能,可以用來改善需要擷取和傳回大量屬性值和常值之查詢的效能。此功能主要是由需要使用查詢傳回許多屬性的客戶使用。查詢快取會本機擷取這些屬性值,而不是在 Neptune 索引儲存區中反覆查詢每個屬性值,藉此提升這些查詢的效能。

查詢快取是在r5d執行個體類型上使用 NVMe連接的EBS磁碟區實作。它是使用叢集的參數群組來啟用。從 Neptune 索引儲存體擷取資料時,屬性值和RDF常值會快取在此NVMe磁碟區中。

如果您不需要查詢快取功能,請使用標準 r5 執行個體類型,而非 r5d,以避免更高成本的 r5d

r5d 系列具有與 r5 系列大小相同的執行個體類型 (從 r5d.larger5d.24xlarge)。

執行個體類型的 r6g 系列

AWS 已開發自己的 ARM型處理器,名為 Graviton ,可提供比 Intel 和AMD同等處理器更好的價格/效能。r6g 系列使用 Graviton2 處理器。在我們的測試中,Graviton2 處理器可為 OLTP樣式 (受限) 圖形查詢提供 10-20% 更好的效能。不過,使用 Graviton2 處理器時,由於效能略低,因此 OLAPGraviton2 處理器的效能可能會略低於 Intel 的查詢。 Graviton2

另外務必要注意的是,r6g 系列具有單插槽架構,這意味著效能會隨著運算容量以線性方式從 r6g.large 擴展到 r6g.16xlarge (系列中最大的類型)。

執行個體類型的 r6i 系列

Amazon R6i 執行個體是由第三代 Intel Xeon 可擴展處理器 (名為 Ice Lake 的程式碼) 提供,非常適合於記憶體密集型工作負載。一般而言,它們提供比類似 R5 執行個體類型高出 15% 的運算價格效能,以及每個 vCPU 高出 20% 的記憶體頻寬。

執行個體類型的 x2g 系列

當執行個體具有較大的緩衝集區快取時,某些圖形使用案例可以看到更好的效能。推出 x2g 系列是為了更好地支援這些使用案例。x2g 系列 memory-to-vCPU的比例大於 r5r6g 系列。x2g 執行個體也會使用 Graviton2 處理器,並具有許多與 r6g 執行個體類型相同的效能特性,以及較大的緩衝集區快取。

如果您是低CPU使用率和高緩衝集區快取遺失率的r5r6g執行個體類型,請嘗試改用 x2g 系列。如此一來,您將取得所需的額外記憶體,而無需支付更多CPU容量。

serverless 執行個體類型

Neptune Serverless 功能可以根據工作負載的資源需求動態擴展執行個體大小。Neptune Serverless 不計算應用程式 vCPUs 所需的數量,而是可讓您為資料庫叢集中的執行個體設定運算容量的下限和上限 (以 Neptune 容量單位為單位)。具有不同使用率的工作負載可以使用無伺服器而不是佈建的執行個體進行成本最佳化

您可以在相同的資料庫叢集中同時設定佈建執行個體和無伺服器執行個體,以實現最佳的成本效能組態。