為什麼我無法縮小我的 ElastiCache 叢集?

1 分的閱讀內容
0

為什麼我無法縮小我的 Amazon ElastiCache 叢集?

解決方式

如果您無法縮小叢集,請檢查下列項目:

快取資料大小

新節點類型可能沒有足夠的記憶體來儲存快取資料。每個 ElastiCache 節點都有保留給 Redis 引擎的專用記憶體容量。例如,cache.m5.xlarge 型節點類型具有 12.93 GiB 的儲存體。根據預設,ElastiCache 會為系統管理工作(例如完整同步和建立快照)保留總記憶體的 25%。您可以使用保留記憶體百分比參數變更此數量。

如需節點類型和儲存數量的清單,請參閱 Amazon ElastiCache 定價

使用 cache.m5.xlarge 節點做為範例,Redis 引擎可以使用 9.69 GiB (最大記憶體) 來保留金鑰空間。剩餘的記憶體會保留為儲備記憶體。您目前的節點類型會使用資料的所有可用記憶體。新節點類型提供的記憶體少於 9.69 GiB。因此,縮小比例失敗。

使用 info 記憶體指令來驗證節點的 used_memory最大記憶體參數中顯示的記憶體使用量。請注意,info 記憶體指令會以「GB」顯示記憶體。Amazon ElastiCache 定價頁面會以「GiB」顯示記憶體。

test.xm4oz6.ng.0001.use1.cache.amazonaws.com:6379> info memory
# Memory
used_memory:5579416
used_memory_human:5.32M
used_memory_rss:11218944
used_memory_rss_human:10.70M
used_memory_peak:5856480
used_memory_peak_human:5.59M
maxmemory:10418941287
maxmemory_human:9.70G

如果節點上沒有足夠的可用記憶體,請減少快取資料。或者,選擇具有更多容量的節點類型。

可用的節點類型

決定擴展和縮減擴展時,您可以從目前節點類型中選取哪些節點類型。您可以使用**列表允許節點類型修改** API 調用來執行此操作。此 API 呼叫會列出所有可用的節點類型,您可以將 Redis 叢集或複寫群組的目前節點類型擴展到這些節點類型。

若要檢視 Redis 叢集的可用節點類型,請從 AWS Command Line Interface (AWS CLI) 執行清單允許的節點類型修改 API 呼叫。產生的清單會顯示您可以調整比例的節點類型。

**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請確保您使用的是最新版 AWS CLI

$aws elasticache list-allowed-node-type-modifications --replication-group-id checkout-cache-test

{
  "ScaleUpModifications": [
    "cache.r4.16xlarge",
    "cache.r5.12xlarge",
    "cache.r5.24xlarge",
    "cache.r5.4xlarge"
  ],
  "ScaleDownModifications": [
    "cache.m3.2xlarge",
    "cache.m3.large",
    "cache.m3.medium",
    "cache.m3.xlarge",
    "cache.m4.2xlarge",
    "cache.m4.4xlarge",
    "cache.m4.large",
    "cache.m4.xlarge",
    "cache.r3.2xlarge",
    "cache.r3.large",
    "cache.r3.xlarge",
    "cache.r4.2xlarge",
    "cache.r4.large",
    "cache.r4.xlarge",
    "cache.t2.medium",
    "cache.t2.micro",
    "cache.t2.small",
    "cache.t3.medium",
    "cache.t3.micro",
    "cache.t3.small"
  ]
}

**附註:**擴充至較小節點類型所需的時間取決於節點類型和目前快取叢集中的資料量。


相關資訊

管理保留的記憶體

縮減 Redis 快取叢集 (AWS CLI)

AWS 官方
AWS 官方已更新 2 年前