Memcached 專用參數 - Amazon ElastiCache

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Memcached 專用參數

若您沒有為 Memcached 叢集指定參數群組,則會使用適合您引擎版本的預設參數群組。您無法變更預設參數群組中任何參數的值。但是,您可以建立自訂參數群組並隨時將其指派給您的叢集。如需更多詳細資訊,請參閱 建立參數群組

Memcached 1.6.17 的變更

從 Memcached 1.6.17 開始,我們不再支援下列管理命令:lru_crawlerlru 和 slabs。這些變更生效後,您就無法在執行期透過命令啟用/停用 lru_crawler。請透過修改自訂參數群組來啟用/停用 lru_crawler

Memcached 1.6.6 版新增參數

針對 Memcached 1.6.6,沒有支援任何額外參數。

參數群組系列:memcached1.6

Memcached 1.5.10 參數變更

針對 Memcached 1.5.10 版,支援以下額外參數。

參數群組系列:memcached1.5

名稱 詳細資訊 描述
no_modern

預設:1

類型:布林值

可修改:是

允許的值:0、1

變更生效:啟動時

用於停用 slab_reassignslab_automovelru_crawlerlru_maintainermaxconns_fast 命令的別名。No modern 也會將 hash_algorithm 設為 jenkins 並允許 ASCII VALUE 內嵌。適用 memcached 1.5 和更高版本。若要還原為現代,必須停用此參數並重新啟動,將會自動啟用slab_reassignslab_automovelru_crawlerlru_maintainermaxconns_fast

注意

自 2021 年 8 月 20 日起,此參數的預設組態值已從 0 變更為 1。2021 年 8 月 20 日之後,每個區域的新 ElastiCache 使用者會自動取得更新的預設值。2021 年 8 月 20 日之前區域中的現有 ElastiCache 使用者需要手動修改其自訂參數群組,才能取得這項新變更。

inline_ascii_resp

預設:0

類型:布林值

可修改:是

允許的值:0、1

變更生效:啟動時

在項目內存放來自 VALUE 回應的數字,使用最多 24 個位元組。針對 ASCII getfaster 設定小量的減速。

針對 Memcached 1.5.10,會移除以下參數。

名稱 詳細資訊 描述
expirezero_does_not_evict

預設:0

類型:布林值

可修改:是

允許的值:0、1

變更生效:啟動時

此版本中已不再支援。

modern

預設:1

類型:布林值

可修改:是 (如果設為 no_modern,則需要重新啟動)

允許的值:0、1

變更生效:啟動時

此版本中已不再支援。從此版本開始,每次啟動或重新啟動時,no-modern 預設會啟用。

Memcached 1.4.34 版新增參數

針對 Memcached 1.4.34,沒有支援任何額外參數。

參數群組系列:memcached1.4

Memcached 1.4.33 版新增參數

針對 Memcached 1.4.33 版,支援以下額外參數。

參數群組系列:memcached1.4

名稱 詳細資訊 描述
modern

預設:啟用

類型:布林值

可修改:是

變更生效:啟動時

多種功能的別名。啟用 modern 等同於開啟以下命令,並使用 murmur3 雜湊演算法:slab_reassignslab_automovelru_crawlerlru_maintainermaxconns_fasthash_algorithm=murmur3

watch

預設:啟用

類型:布林值

可修改:是

變更生效:立即

若使用者到達其 watcher_logbuf_sizeworker_logbuf_size 限制,則日誌可能會遭到卸除。

日誌擷取、移出或突變。例如,當使用者開啟 watch 時,他們會在 getsetdeleteupdate 發生時看到日誌。

idle_timeout

預設:0 (停用)

類型:整數

可修改:是

變更生效:啟動時

在詢問關閉前允許用戶端閒置的最低秒數。數值範圍:0 到 86400。

track_sizes

預設:停用

類型:布林值

可修改:是

變更生效:啟動時

顯示每個 Slab 群組使用的大小。

啟用 track_sizes 可讓您執行 stats sizes,而無須執行 stats sizes_enable

watcher_logbuf_size

預設:256 (KB)

類型:整數

可修改:是

變更生效:啟動時

watch 命令會開啟 Memcached 的串流日誌。但是,watch 可能會在移出率、突變率或擷取率過高,足以導致日誌緩衝區填滿時卸除日誌。在這種情況下,使用者可增加緩衝區大小來減少遺失日誌的機率。

worker_logbuf_size

預設:64 (KB)

類型:整數

可修改:是

變更生效:啟動時

watch 命令會開啟 Memcached 的串流日誌。但是,watch 可能會在移出率、突變率或擷取率過高,足以導致日誌緩衝區填滿時卸除日誌。在這種情況下,使用者可增加緩衝區大小來減少遺失日誌的機率。

slab_chunk_max

預設:524288 (位元組)

類型:整數

可修改:是

變更生效:啟動時

指定 Slab 的大小上限。設定較小的 Slab 大小以更有效率地使用記憶體。大於 slab_chunk_max 的項目會分割成多個 Slab。

lru_crawler metadump [all|1|2|3]

預設:停用

類型:布林值

可修改:是

變更生效:立即

若啟用 lru_crawler,則此命令會傾印所有鍵。

all|1|2|3 - 所有 Slab,或是指定特定的 Slab 編號。

Memcached 1.4.24 版新增參數

針對 Memcached 1.4.24 版,支援以下額外參數。

參數群組系列:memcached1.4

名稱 詳細資訊 描述
disable_flush_all

預設:0 (停用)

類型:布林值

可修改:是

變更生效:啟動時

新增參數 (-F) 來停用 flush_all。在您永遠不想在生產執行個體上執行完整排清時很有用。

數值:0、1 (當此值為 0 時,使用者便可執行 flush_all)。

hash_algorithm

預設:jenkins

類型:字串

可修改:是

變更生效:啟動時

要使用的雜湊演算法。允許值:murmur3 及 jenkins。
lru_crawler

預設:0 (停用)

類型:布林值

可修改:是

變更生效:重新啟動後

注意

您可以於執行時間從命令列暫時啟用 lru_crawler。如需詳細資訊,請參閱「描述」欄。

清理已過期的項目 Slab 類別。此為在背景執行且影響程度低的程序。目前需要使用手動命令初始化網路爬取。

若要暫時啟用,請在命令列執行 lru_crawler enable

lru_crawler 1,3,5 會網路爬取 Slab 類別 1、3 及 5,尋找過期的項目,並新增到釋放清單。

數值:0、1

注意

在命令列啟用 lru_crawler 會啟用網路爬取程式,直到在命令列停用或下一次重新開機為止。若要永久啟用,您必須修改參數值。如需更多詳細資訊,請參閱 修改參數群組

lru_maintainer

預設:0 (停用)

類型:布林值

可修改:是

變更生效:啟動時

背景執行緒,可在到達容量時於 LRU 間隨機移動項目。數值:0、1。

expirezero_does_not_evict

預設:0 (停用)

類型:布林值

可修改:是

變更生效:啟動時

搭配 lru_maintainer 使用時,讓過期時間為 0 的項目無法移出。

警告

這可能會填滿其他可移出項目的可用記憶體。

可設為略過 lru_maintainer

Memcached 1.4.14 版新增參數

針對 Memcached 1.4.14 版,支援以下額外參數。

參數群組系列:memcached1.4

Memcached 1.4.14 版中新增的參數
名稱 詳細資訊 描述
config_max

預設:16

類型:整數

可修改:否

ElastiCache 組態項目的數量上限。
config_size_max

預設:65536

類型:整數

可修改:否

組態項目的大小上限,單位為位元組。
hashpower_init

預設:16

類型:整數

可修改:否

ElastiCache 雜湊表的初始大小,以 2 的乘冪表示。預設為 16 (2^16),或 65536 個鍵。
maxconns_fast

預設值:0 (false)

類型:布林值

可修改:是

變更生效:重新啟動後

變更到達連線數量上限時處理新連線請求的方式。若將此參數設為 0 (零),則新的連線會新增到待處理項目佇列,並等待其他連線關閉。若將此參數設為 1,ElastiCache 會將錯誤傳送至用戶端,並立即關閉連線。
slab_automove

預設:0

類型:整數

可修改:是

變更生效:重新啟動後

調整 Slab 自動移動演算法:若將此參數設為 0 (零),則停用自動移動演算法。若設為 1,ElastiCache 會採取緩慢、保守的方式來自動移動 Slab。若設為 2,ElastiCache 會在發生移出時積極移動 Slab。(除非用於測試用途,否則不建議此模式。)
slab_reassign

預設值:0 (false)

類型:布林值

可修改:是

變更生效:重新啟動後

啟用或停用 Slab 指派。若將此參數設為 1,您可以使用 "slabs reassign" 命令來手動重新指派記憶體。

Memcached 1.4.5 版支援參數

參數群組系列:memcached1.4

針對 Memcached 1.4.5 版,支援以下參數。

Memcached 1.4.5 版中新增的參數
名稱 詳細資訊 描述
backlog_queue_limit

預設:1024

類型:整數

可修改:否

待處理佇列限制。
binding_protocol

預設:自動

類型:字串

可修改:是

變更生效:重新啟動後

繫結通訊協定。

允許值:asciiauto

如需修改 binding_protocol 值的指導,請參閱修改參數群組

cas_disabled

預設值:0 (false)

類型:布林值

可修改:是

變更生效:重新啟動後

若為 1 (True),則會停用檢查及設定 (CAS) 操作,並且存放的項目會比啟用 CAS 時少使用 8 個位元組。
chunk_size

預設:48

類型:整數

可修改:是

變更生效:重新啟動後

配置給最小項目鍵、值及標記的空間數量下限 (位元組)。
chunk_size_growth_factor

預設:1.25

類型:浮動

可修改:是

變更生效:重新啟動後

成長因數,控制每個後續 Memcached 區塊的大小。每個區塊都會比前一個區塊大 chunk_size_growth_factor 倍。
error_on_memory_exhausted

預設值:0 (false)

類型:布林值

可修改:是

變更生效:重新啟動後

若為 1 (True),則當沒有記憶體可存放項目時,Memcached 會傳回錯誤而非移出項目。
large_memory_pages

預設值:0 (false)

類型:布林值

可修改:否

若為 1 (True),ElastiCache 會嘗試使用大型記憶體分頁。
lock_down_paged_memory

預設值:0 (false)

類型:布林值

可修改:否

若為 1 (True),ElastiCache 會鎖定所有分頁記憶體。
max_item_size

預設:1048576

類型:整數

可修改:是

變更生效:重新啟動後

可存放在叢集中的最大項目大小 (位元組)。
max_simultaneous_connections

預設:65000

類型:整數

可修改:否

同時連線數量上限。
maximize_core_file_limit

預設值:0 (false)

類型:布林值

可修改:

變更生效:重新啟動後

若為 1 (True),ElastiCache 會最大化核心檔案限制。
memcached_connections_overhead

預設:100

類型:整數

可修改:是

變更生效:重新啟動後

要為 Memcached 連線及其他雜項額外負荷預留的記憶體數量。如需此參數的相關資訊,請參閱 Memcached 連線額外負荷
requests_per_event

預設:20

類型:整數

可修改:否

指定連線每個事件的請求數上限。此限制為避免資源耗盡的必要項目。

Memcached 連線額外負荷

在每個節點上,可供存放項目的記憶體為該節點可用記憶體的總數 (該值存放在 max_cache_memory 參數中),減去用於連線及其他額外負荷 (該值存放在 memcached_connections_overhead 參數中) 所使用的記憶體。例如,cache.m1.small 類型的節點具有 1300MB 的 max_cache_memory。使用預設 100MB 的 memcached_connections_overhead 值,Memcached 程序便會擁有 1200MB,可用於存放項目。

memcached_connections_overhead 參數的預設值足以滿足大多數的使用案例。但是,連線額外負荷所需要的配置數量可能會因多項因素而不同,包括請求率、承載大小,以及連線數量。

您可以變更 memcached_connections_overhead 的值來更進一步配合您應用程式的需求。例如,增加 memcached_connections_overhead 參數的值會減少可用於存放項目的記憶體數量,為連線額外負荷提供更大的緩衝區。減少 memcached_connections_overhead 參數的值可讓您擁有更多記憶體來存放項目,但可能會增加切換 (swap) 用量及降低效能。若您察覺切換 (swap) 用量及效能降低,請嘗試增加 memcached_connections_overhead 參數的值。

重要

針對 cache.t1.micro 節點類型,memcached_connections_overhead 的值會透過以下方式決定:

  • 若您的叢集使用預設參數群組,ElastiCache 會將 memcached_connections_overhead 的值設為 13MB。

  • 若您的叢集使用您自行建立的參數群組,您可以將 memcached_connections_overhead 的值設為您所選擇的值。

Memcached 節點類型專用參數

雖然大多數的參數都只有單一值,有些參數則可能會根據所使用的節點類型而有不同的值。下表顯示每個節點類型 max_cache_memorynum_threads 參數的預設值。這些參數上的值都無法修改。

節點類型 max_cache_memory (以 MB 為單位) num_threads
cache.t1.micro 213 1
cache.t2.micro 555 1
cache.t2.small 1588 1
cache.t2.medium 3301 2
cache.t3.micro 512 2
cache.t3.small 1402 2
cache.t3.medium 3364 2
cache.t4g.micro 512 2
cache.t4g.small 1402 2
cache.t4g.medium 3164 2
cache.m1.small 1301 1
cache.m1.medium 3350 1
cache.m1.large 7100 2
cache.m1.xlarge 14600 4
cache.m2.xlarge 33800 2
cache.m2.2xlarge 30412 4
cache.m2.4xlarge 68000 16
cache.m3.medium 2850 1
cache.m3.large 6200 2
cache.m3.xlarge 13600 4
cache.m3.2xlarge 28600 8
cache.m4.large 6573 2
cache.m4.xlarge 11496 4
cache.m4.2xlarge 30412 8
cache.m4.4xlarge 62234 16
cache.m4.10xlarge 158355 40
cache.m5.large 6537 2
cache.m5.xlarge 13248 4
cache.m5.2xlarge 26671 8
cache.m5.4xlarge 53516 16
cache.m5.12xlarge 160900 48
cache.m5.24xlarge 321865 96
cache.m6g.large 6537 2
cache.m6g.xlarge 13248 4
cache.m6g.2xlarge 26671 8
cache.m6g.4xlarge 53516 16
cache.m6g.8xlarge 107000 32
cache.m6g.12xlarge 160900 48
cache.m6g.16xlarge 214577 64
cache.c1.xlarge 6600 8
cache.r3.large 13800 2
cache.r3.xlarge 29100 4
cache.r3.2xlarge 59600 8
cache.r3.4xlarge 120600 16
cache.r3.8xlarge 120600 32
cache.r4.large 12590 2
cache.r4.xlarge 25652 4
cache.r4.2xlarge 51686 8
cache.r4.4xlarge 103815 16
cache.r4.8xlarge 208144 32
cache.r4.16xlarge 416776 64
cache.r5.large 13387 2
cache.r5.xlarge 26953 4
cache.r5.2xlarge 54084 8
cache.r5.4xlarge 108347 16
cache.r5.12xlarge 325400 48
cache.r5.24xlarge 650869 96
cache.r6g.large 13387 2
cache.r6g.xlarge 26953 4
cache.r6g.2xlarge 54084 8
cache.r6g.4xlarge 108347 16
cache.r6g.8xlarge 214577 32
cache.r6g.12xlarge 325400 48
cache.r6g.16xlarge 429154 64
cache.c7gn.large 3164 2
cache.c7gn.xlarge 6537 4
cache.c7gn.2xlarge 13248 8
cache.c7gn.4xlarge 26671 16
cache.c7gn.8xlarge 53516 32
cache.c7gn.12xlarge 325400 48
cache.c7gn.16xlarge 108347 64
注意

所有 T2 執行個體都是在 Amazon Virtual Private Cloud (Amazon VPC) 中建立的。