支援的 Memcached 設定

本頁面列出 Memorystore for Memcached 可修改和不可修改的 Memcached 設定參數,以及這些參數的預設值。

可修改的設定參數

建立或更新 Memorystore for Memcached 執行個體時,您可以修改下列參數。如要更新參數,您必須在兩個不同的步驟中變更及套用參數。如要進一步瞭解如何變更這些設定,請參閱「設定 Memcached 執行個體」。

參數 可接受的值 預設值 說明
listen-backlog (-b) 1-10000 1024 可調整的連線待處理佇列長度。積壓是指排入 Memcached 處理佇列的網路連線要求數量。
disable-flush-all (-F) true/false false disable-flush-all 設為 true 會停用開源 Memcached flush-all 指令。修改這項設定會增加 cmd_flush 計數器,但實際上不會發生刷新作業。
disable-watch (-W) true/false false Memcached 1.6.15 以上版本。如果設為 true,這個參數會停用手錶指令。您可以使用監控器連線至 Memcached,並檢查內部運作情形。您可以使用 watch <fetchers|mutation|evictions|connevents|deletions> 觀察擷取、突變、連線事件等。
max-item-size (-I) 524288-134217728 (位元組) 1048576 Memcached 參數 max-item-size 會設定儲存在執行個體中的項目大小上限。但須遵守以下額外限制:
  • max-item-size 必須大於或等於 slab_chunk_max。 slab_chunk_max 已設為 524288 個位元組 (512 KiB),而 Memorystore for Memcached 不支援變更這個值。因此,max-item-size 的最小值為 524288 位元組,而非開源 Memcached 支援的最小值 (1024 位元組)。
  • max-item-size 必須能被 slab_chunk_max (524288 位元組) 整除。
  • max-item-size 不得超過快取的總配置大小的一半 (-m 標記)。
slab-min-size (-n) 1 至 1,024 (位元組) 48 設定最小項目大小和最小 Memcached 區塊大小。
slab-growth-factor (-f) 1.01 至 100.00 1.25 slab-growth-factor 是用來計算 Memcached 區塊/區塊群大小的調節係數。降低這個值可以提高記憶體用量的效率,但這取決於要儲存的項目大小和執行個體的可用記憶體。
通訊協定 (-B) auto、ascii 自動 繫結通訊協定。指定嘗試連線至伺服器的用戶端必須使用的通訊協定。Auto 支援二進位和 ASCII 通訊協定。
disable-cas (-C) true/false false 如果 disable-cas 設為 true,系統就會停用檢查和設定 (CAS) 作業。停用 CAS 作業後,快取中每個項目的用量會減少 8 個位元組。如果項目自上次擷取後未更新,Memcached 會使用 CAS 作業來重新整理項目的資料。
disable-evictions (-M) true/false false 如果設為 true,當記憶體不足時,Memcached 會傳回錯誤,而不是移除項目。記憶體可用後,執行個體才會接受寫入作業。
max-reqs-per-event (-R) 1-1000 20 限制單一用戶端連線可發出的每個事件要求數量。當用戶端超過這個值後,伺服器會優先處理其他用戶端,然後繼續處理原始用戶端要求。
reserved-memory-percent 0.0-50.0 10.0 將執行個體的預留記憶體設為指定的百分比,以增加可用於記憶體額外負擔的空間量。此設定也會以相同百分比減少快取記憶體。2021 年 10 月 25 日前建立的執行個體預設值為 0。詳情請參閱「記憶體管理最佳做法」。

支援的擴充選項

參數 可接受的值 預設值 說明
track_sizes true/false false (已停用) 如果將 track-sizes 設為 true,使用者就能執行 Memcached stats sizes 指令。我們不建議在正式環境中啟用這項設定。
watcher_logbuf_size 0 至 2097151 (千字節) 262144 每個連線的有效監控器的寫入緩衝區大小。變更這項設定會調整 watch 指令的記錄緩衝區大小。為避免記錄遺失,請在 watcher_logbuf_size 已滿時增加其大小。
worker_logbuf_size 48-524288 (kibibytes) 65536 控制每個活動工作站的緩衝區大小。背景執行緒會從這些緩衝區讀取資料。
lru_crawler true/false true (已啟用) lru_crawler 設定可啟用背景程序,掃描各個區塊,並從這些區塊中移除最近最少使用的項目 (lru)。這個程序不會耗用大量 CPU 或記憶體。由於這項功能已啟用,因此程序會在啟動時執行,直到您將 lru_crawler 設為 false 為止。
idle_timeout 0 到 86400 秒 0 (已停用) 預設值為 0 (停用)。這項設定會以秒為單位,設定用戶端在逾時和中斷連線前可閒置的時間。
lru_maintainer true/false true (已啟用) 預設為啟用。lru_maintainer 是背景程序,可決定最近存取項目的方式,以便依據「最近最少使用」(lru) 正確排序所有項目。
maxconns_fast true/false false (已停用) 管理 Memcached 在達到用戶端數量上限時,處理新連線的方式。當 maxconns-fast 設為 false 時,超過連線上限的連線會加入佇列。當 maxconns-fast 設為 true 時,系統會捨棄超過連線上限的連線,並顯示錯誤訊息。
hash_algorithm jenkins、murmur3、xxh3 murmur3 指定執行個體使用的雜湊演算法。只有使用 Memcached 1.6.15 以上版本的執行個體才能使用 xxh3 設定。

無法修改的設定參數

下表列出您無法使用 Memorystore for Memcached 修改的 Memcached 設定參數,以及參數的預設值。詳情請參閱原生 Memcached 設定參數清單。

參數 預設值
通訊埠 (-p) 11211
記憶體限制 (-m) Memorystore 會將這個值設為與執行個體節點設定中每個節點的記憶體相符。這項設定無法修改,但您可以使用上述保留記憶體設定新增保留記憶體。
執行緒 (-t) Memorystore 會將這個值設為與每個例項節點的 CPU 數量相符。
conn-limit (-c) 每個節點 65000
詳細 (-v)
slab_automove true (已啟用)
slab_reassign true (已啟用)
enable-largepages (-L) false (已停用)
lock-memory (-k) false (已停用)
expirezero-does-not-evict 不支援。已在 Memcached 1.4.35 淘汰。
slab_chunk_max 524288 位元組
現代 true (已啟用)

後續步驟