本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
選擇您的節點大小
您為叢集選取的節點大小會影響成本、效能及容錯能力。
選擇您的節點大小
如需有關 Graviton 處理器優點的詳細資訊,請參閱 AWS Graviton 處理器
回答下列問題可協助您判斷 Redis OSS 實作所需的最低節點類型:
-
您是否預期會有具有多個用戶端連線的輸送量繫結工作負載?
如果是這種情況,而您執行的是 Redis OSS 5.0.6 版或更高版本,您可以使用我們的增強型 I/O 功能獲得更好的輸送量和延遲,其中可用的 CPU 代表 Redis OSS 引擎卸載用戶端連線。如果您執行的是 Redis OSS 7.0.4 版或更新版本,除了增強型 I/O 之外,您還可以透過增強型 I/O 多工處理獲得額外的加速,其中每個專用網路 IO 執行緒會將多個用戶端的命令管線至 Redis OSS 引擎,並利用 Redis OS 有效率地批次處理命令的能力。在 ElastiCache (Redis OSS) v7.1 及更新版本中,我們擴充了增強的 I/O 執行緒功能,以處理表示層邏輯。通過表示層,我們的意思是增強型 I/O 線程現在不僅讀取客戶端輸入,還將輸入解析為 Redis OSS 二進制命令格式,然後將其轉發到主線程進行執行,從而提供性能增益。如需其他詳細資訊,請參閱部落格文章
和支援的版本頁面。 -
您是否有經常存取少量資料的工作負載?
如果是這種情況,而且您在 Redis OSS 引擎 6.2 版或更新版本上執行,則可以選擇 r6gd 節點類型來運用資料分層。透過資料分層,最近使用的資料會存放在 SSD 中。當檢索資料時,會有少量的延遲成本,可藉由成本節省加以抵銷。如需詳細資訊,請參閱 資料分層。
如需詳細資訊,請參閱 支援的節點類型。
-
您的資料需要多少總記憶體?
若要取得一般估計值,請使用要快取的項目大小。將此大小乘以您希望同時保持在快取中的項目數。若要取得合理的項目大小估計,收先請序列化您的快取項目,接著計算字元數。然後再除以您叢集中碎片數。
如需詳細資訊,請參閱 支援的節點類型。
-
您執行的是什麼版本的 Redis OSS?
2.8.22 之前的 Redis OSS 版本會要求您保留更多記憶體,以供容錯移轉、快照、同步處理,以及將複本升級為主要作業。此需求的原因是您必須針對處理期間所有發生的寫入擁有足夠的記憶體。
Redis OSS 版本 2.8.22 及更新版本使用無分叉儲存程序,與舊版程序相比,需要較少的可用記憶體。
如需詳細資訊,請參閱下列內容:
-
您應用程式所需要的大量寫入程度為何?
需要大量寫入的應用程式可能需要在取得快照或容錯移轉時擁有大上許多的可用記憶體 (尚未由資料使用的記憶體)。每次執行
BGSAVE
處理序時,都必須有資料未使用的足夠記憶體,以容納執行BGSAVE
處理序時產生的所有寫入。例如拍攝快照、將主要叢集與叢集中的複本同步,以及啟用僅限附加檔案 (AOF) 功能時。另一個範例是將複本提升為主要節點 (若您已啟用多個可用區) 時。最糟糕的情況是執行處理序過程中所有資料都被重寫。在這種情況下,節點執行個體的大小需為單純資料所需記憶體的兩倍。如需詳細資訊,請參閱確定您有足夠的記憶體來建立 Redis OSS 快照。
-
您的實作是獨立的 Redis OSS (叢集模式已停用) 叢集還是具有多個碎片的 Redis OSS (啟用叢集模式) 叢集?
Redis 的 OSS(群集模式禁用)集群
如果您要實作 Redis OSS (叢集模式已停用) 叢集,您的節點類型必須能夠容納所有資料加上必要的額外負荷,如上一個 bullet 所述。
例如,假設您估計所有項目的總大小為 12 GB。在這種情況下,您可以使用具有 13.3 GB 記憶體的
cache.m3.xlarge
節點或記憶體為 13.5 GB 的cache.r3.large
節點。但是,您可能需要更多記憶體以執行BGSAVE
作業。如果您的應用程式需執行大量寫入,請將記憶體需求加倍為至少 24 GB。因此,可使用cache.m3.2xlarge
(含 27.9 GB 記憶體) 或cache.r3.xlarge
(含 30.5 GB 記憶體)。具有多個碎片的 Redis OSS(群集模式已啟用)
如果您要實作具有多個碎片的 Redis OSS (已啟用叢集模式) 叢集,則節點類型必須能夠容納
bytes-for-data-and-overhead / number-of-shards
位元組的資料。例如,假設您估計所有項目的總大小為 12 GB 且有兩個碎片。在這種情況下,您可以使用具有 6.05 GB 記憶體 (12 GB/2) 的
cache.m3.large
節點。但是,您可能需要更多記憶體以執行BGSAVE
作業。如果您的應用程式需執行大量寫入,請將記憶體需求加倍為每個碎片至少 12 GB。因此,可使用cache.m3.xlarge
(含 13.3 GB 記憶體) 或cache.r3.large
(含 13.5 GB 記憶體)。 -
您是否有使用 Local Zones?
L@@ ocal Zones 可讓您將 ElastiCache 叢集等資源放置在靠近使用者的多個位置。但是選擇節點大小時請注意,無論容量要求為何,目前可用節點都會限制為下列大小:
-
最新一代:
M5 節點類型:
cache.m5.large
、cache.m5.xlarge
、cache.m5.2xlarge
、cache.m5.4xlarge
、cache.m5.12xlarge
、cache.m5.24xlarge
R5 節點類型:
cache.r5.large
、cache.r5.xlarge
、cache.r5.2xlarge
、cache.r5.4xlarge
、cache.r5.12xlarge
、cache.r5.24xlarge
T3 節點類型:
cache.t3.micro
、cache.t3.small
、cache.t3.medium
-
在叢集執行時,您可以監視發佈至的記憶體使用率、處理器使用率、快取命中以及快取遺漏指標 CloudWatch。您可能會注意到叢集沒有您想要的命中率,或是索引鍵被移出的頻率太頻繁。在這些情況下,您可以選擇 CPU 和記憶體規格較大的不同節點大小。
監視 CPU 使用率時,請記住 Redis OSS 是單執行緒的。因此,將回報的 CPU 使用率乘上 CPU 核心數,可得出實際的使用率。例如,報告百分之二十使用率的四核心 CPU 實際上是 Redis OSS 以 80% 的使用率執行。