メニュー
Amazon ElastiCache
ユーザーガイド (API Version 2015-02-02)

Memcached 固有のパラメータ

Memcached クラスターにパラメータグループを指定しない場合、デフォルトのパラメータグループ (default.memcached1.4) が使用されます。デフォルトのパラメータグループ内のパラメータは、どれも値を変更できません。ただし、いつでもカスタムパラメータグループを作成して、クラスターに割り当てることができます。

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_size および worker_logbuf_size 制限に達すると削除できます。

ログ取得、削除または変異。たとえば、watch をオンにすると、getsetdelete または update が発生したときにユーザーはログを表示できます。

idle_timeout

デフォルト: 0 (無効)

タイプ: 整数

変更可能: はい

変更の適用: 起動時

閉じる前にクライアントがアイドル状態にできる最小秒数。値の範囲: 0~86400

cache_memlimit

タイプ: 整数

変更可能: はい

変更の適用: 即時

メモリが事前に割り当てられていない場合は、実行中のシステムのメモリ制限を動的に増やすことができます。cache_memlimit N N は、値 (MB) を表します。値は増減できます。

範囲: 8 (MB)~ノードタイプの maxmemory

track_sizes

デフォルト: 無効

タイプ: ブール値

変更可能: はい

変更の適用: 起動時

各スラブグループの消費サイズを表示します。

有効化 track_sizes を行うと、stats sizes_enable を実行せずに stats sizes を実行できます。

watcher_logbuf_size

デフォルト: 256 (KB)

タイプ: 整数

変更可能: はい

変更の適用: 起動時

watch コマンドは、Memcached の配信ログ作成をオンにします。ただし、削除、変異、取得によって、ロギングバッファがいっぱいになる可能性がある場合には、watch でログを削除することができます。このような場合、ユーザーは、バッファサイズを増やして、ログ損失の可能性を抑えることができます。

worker_logbuf_size

デフォルト: 64 (KB)

タイプ: 整数

変更可能: はい

変更の適用: 起動時

watch コマンドは、Memcached の配信ログ作成をオンにします。ただし、削除、変異、取得によって、ロギングバッファがいっぱいになる可能性がある場合には、watch でログを削除することができます。このような場合、ユーザーは、バッファサイズを増やして、ログ損失の可能性を抑えることができます。

slab_chunk_max

デフォルト: 524288 (バイト)

タイプ: 整数

変更可能: はい

変更の適用: 起動時

スラブの最大サイズを指定します。スラブサイズを小さくすると、メモリは効率的に使用されます。slab_chunk_max より大きい項目は、複数のスラブに分割されます。

lru_crawler metadump [all|1|2|3]

デフォルト: 無効

タイプ: ブール値

変更可能: はい

変更の適用: 即時

lru_crawler を有効化すると、このコマンドによってすべてのキーがダンプされます。

all|1|2|3 - すべてのスラブ、または特定のスラブ数を指定する

Memcached 1.4.24 で追加されたパラメータ

Memcached 1.4.24 では、次のパラメータが追加でサポートされます。

パラメータグループファミリー: memcached1.4

名前 詳細 説明
disable_flush_all

デフォルト: 0 (無効)

タイプ: ブール値

変更可能: はい

変更の適用: 起動時

flush_all を無効化するパラメータ -F を追加します。本稼働インスタンスでフルフラッシュを実行しない場合に便利です。

値: 0、1 (値が 0 の場合にユーザーは flush_all を実行できます。)

hash_algorithm

デフォルト: jenkins

タイプ: 文字列

変更可能: はい

変更の適用: 起動時

使用されるハッシュアルゴリズム。使用可能な値: murmur3 と jenkins。
lru_crawler

デフォルト: 0 (無効)

タイプ: ブール値

変更可能: はい

変更の適用: 再起動後

注記

実行時に、コマンドラインから lru_crawler を一時的に有効にすることができます。詳細については、「Describe」列を参照してください。

期限が切れた項目のスラブクラスを消去します。これにより、バックグラウンドで実行されるプロセスの影響を小さくなります。現在は、手動コマンドを使用して Crawl を起動する必要があります。

一時的に有効にするには、コマンドラインで lru_crawler enable を実行します。

lru_crawler 1,3,5 はスラブクラス 1、3、5 をクロールし、freelist に追加する期限切れの項目を検索します。

値: 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

タイプ: 整数

変更可能: はい

変更の適用: 再起動後

スラブ自動移動アルゴリズムを調整します。このパラメータを 0 (ゼロ) に設定した場合、自動移動アルゴリズムは無効です。1 に設定した場合、ElastiCache 低速で控えめな手法を使用して、スラブを自動的に移動します。2 に設定した場合、削除が生じると必ず ElastiCache はスラブを積極的に移動します (このモードは、テスト目的以外では推奨されません)。
slab_reassign

デフォルト: 0 (false)

タイプ: ブール値

変更可能: はい

変更の適用: 再起動後

スラブの再割り当てを有効または無効にします。このパラメータを 1 に設定した場合、「slabs reassign」コマンドを使用してメモリを手動で再割り当てできます。

Memcached 1.4.5 でサポートされているパラメータ

パラメータグループファミリー: memcached1.4

Memcached 1.4.5 では、さらに次のパラメータがサポートされています。

Memcached 1.4.5 で追加されたパラメータ

名前 詳細 説明
backlog_queue_limit

デフォルト: 1024

タイプ: 整数

変更可能: いいえ

バックログキューの制限。
binding_protocol

デフォルト: auto

タイプ: 文字列

変更可能: はい

変更の適用: 再起動後

バインディングプロトコル。

許可される値は ascii および auto です。

binding_protocol の値を変更する際のガイダンスについては、「パラメーターグループを変更する」を参照してください。

cas_disabled

デフォルト: 0 (false)

タイプ: ブール値

変更可能: はい

変更の適用: 再起動後

1 (true) の場合、CAS (Check and Set) 操作が無効になり、格納されている項目が消費するバイト数は 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 があるとします。memcached_connections_overhead がデフォルト値の 100 MB の場合、Memcached プロセスは項目を保存するために 1,200 MB 使用できます。

memcached_connections_overhead パラメータのデフォルト値は、ほとんどのユースケースに適しています。ただし、接続オーバーヘッドの割り当てに必要な量は、リクエストの頻度、ペイロードサイズ、接続数など、複数の要因によって変化します。

アプリケーションのニーズにさらに合うように memcached_connections_overhead の値を変更できます。たとえば、memcached_connections_overhead パラメーターの値を大きくすると、項目の保存に使用できるメモリの量が減り、接続のオーバーヘッド用のバッファが増えます。memcached_connections_overhead パラメーターの値を小さくすると、項目の保存に使用できるメモリは増えますが、スワップの使用とパフォーマンスの低下のリスクが高くなります。スワップの使用やパフォーマンスの低下が観察される場合、memcached_connections_overhead パラメータの値を大きくしてみてください。

重要

ノードタイプが cache.t1.micro の場合、memcached_connections_overhead の値は次のように決まります。

  • クラスターがデフォルトのパラメータグループを使用している場合、ElastiCache は memcached_connections_overhead の値を 13 MB に設定します。

  • 自身で作成したパラメータグループをクラスターが使用している場合、memcached_connections_overhead の値を選択した値に設定できます。

Memcached のノードタイプ固有のパラメータ

ほとんどのパラメータの値は 1 つですが、一部のパラメータには、使用されているノードタイプによって複数の値が設定されることがあります。次の表は、各ノードタイプの max_cache_memory パラメータと num_threads パラメータのデフォルト値を示しています。これらのパラメータの値は変更できません。

ノードタイプ固有のパラメータ

Node Type max_cache_memory (MiB) num-threads
cache.t1.micro 213 1
cache.t2.micro 555 1
cache.t2.small 1588 1
cache.t2.medium 3301 2
cache.m1.small 1300 1
cache.m1.medium 3350 1
cache.m1.large 7100 2
cache.m1.xlarge 14600 4
cache.m2.xlarge 16700 2
cache.m2.2xlarge 33800 4
cache.m2.4xlarge 68000 8
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 14618 4
cache.m4.2xlarge 30412 8
cache.m4.4xlarge 62234 16
cache.m4.10xlarge 158355 40
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 242600 32