本頁面列出 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 會設定儲存在執行個體中的項目大小上限。但須遵守以下額外限制:
|
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 (已啟用) |