本頁面列出 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 計數器,但實際上不會發生清除作業。 |
| 停用手錶 (-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 到 1024 (位元組) | 48 | 設定最小項目大小和最小 Memcached slab 的大小。 |
| 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 (KiB) | 262144 | 每個已連線的有效監看程式的寫入緩衝區空間大小。變更這項設定會調整 watch 指令的記錄緩衝區空間大小。為避免遺失記錄,請在緩衝區已滿時增加 watcher_logbuf_size。 |
| worker_logbuf_size | 48 到 524288 (千位元組) | 65536 | 控制每個使用中工作站的緩衝區大小。背景執行緒會從這些緩衝區讀取資料。 |
| lru_crawler | true/false | true (已啟用) | lru_crawler 設定會啟用背景程序,掃描 Slab 並從中移除最近最少使用的 (LRU) 項目。這個程序不會耗用大量 CPU 或記憶體。啟用後,程序會在啟動時執行,直到您將 lru_crawler 設為 false 為止。 |
| idle_timeout | 0 到 86400 秒 | 0 (已停用) | 預設值為 0 (停用)。這項設定會以秒為單位,設定用戶端閒置多久後會逾時並中斷連線。 |
| lru_maintainer | true/false | true (已啟用) | 預設為啟用。lru_maintainer 是背景程序,可判斷項目最近的存取時間,以便依「最近最少使用」排序所有項目。 |
| 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) | true |
| slab_automove | true (已啟用) |
| slab_reassign | true (已啟用) |
| enable-largepages (-L) | false (已停用) |
| 鎖定記憶體 (-k) | false (已停用) |
| expirezero-does-not-evict | 不支援。已在 Memcached 1.4.35 中淘汰。 |
| slab_chunk_max | 524288 個位元組 |
| 現代 | true (已啟用) |