memcached の使用を開始するには、1 台以上のサーバーで memcached サービスを起動します。memcached を実行すると、サーバーが設定され、メモリーが割り当てられ、クライアントからの接続の待機が開始されます。
memcached を実行する際は、いずれかの特権 TCP/IP ポート (1024 以下) で待機する場合を除き、権限を持つユーザー (root
) である必要はありません。ただし、setrlimit または同様の機能を使用してメモリー制限が設定されていないユーザーを使用する必要があります。
サーバーを起動するには、権限を持たない (つまり、root
以外の) ユーザーとして memcached を実行します。
shell> memcached
デフォルトでは、memcached は次の設定を使用します。
64M バイトのメモリー割り当て
すべてのネットワークインタフェースでポート 11211 を使用して接続を待機します
最大で 1024 個の同時接続をサポートします
一般に、memcached の起動時に必要なオプションの完全な組み合わせを指定し、通常は memcached の初期化を処理する起動スクリプトを提供します。たとえば、次の行はキャッシュ用に最大 1024M バイトの RAM を割り当て、IP アドレス 192.168.0.110 のポート 11211 で待機し、バックグラウンドデーモンとして動作するように memcached を起動します。
shell> memcached -d -m 1024 -p 11211 -l 192.168.0.110
memcached がブート時に起動されるようにするには、init スクリプトと構成パラメータを確認してください。
memcached は次のオプションをサポートします。
-
-u user
root
として memcached を起動する場合は、-u
オプションを使用して memcached の実行用のユーザーを指定します。shell> memcached -u memcache
-
-m memory
オブジェクトを格納するために memcached に割り当てるメモリーの量を設定します。デフォルトは 64M バイトです。
キャッシュ用に割り当てるメモリーの量を増やすには、
-m
オプションを使用して割り当てる RAM の量 (メガバイト単位) を指定します。割り当てる RAM の量が多いほど、格納できるデータの量も多くなり、キャッシュの効率も向上します。警告使用可能な RAM より大きいメモリー割り当てを指定しないでください。指定した値が大きすぎると、memcached に割り当てられた RAM の一部に対して物理 RAM ではなくスワップ領域が使用されます。これにより、データが RAM に直接格納されず、ディスクにスワップされるため、値を格納および取得するときに遅延が発生する可能性があります。
vmstat コマンドの出力を使用すると、次の
free
カラムに示されるように、空きメモリーを取得できます。shell> vmstat kthr memory page disk faults cpu r b w swap free re mf pi po fr de sr s1 s2 -- -- in sy cs us sy id 0 0 0 5170504 3450392 2 7 2 0 0 0 4 0 0 0 0 296 54 199 0 0 100
たとえば、3G バイトの RAM を取得するには:
shell> memcached -m 3072
4G バイトの制限を超えるメモリーにアクセスするために PAE を使用する 32 ビット x86 システムでは、最大プロセスサイズを超える RAM を割り当てることはできません。これを回避するには、memcached の複数のインスタンスを実行し、それぞれ異なるポートで待機します。
shell> memcached -m 1024 -p11211 shell> memcached -m 1024 -p11212 shell> memcached -m 1024 -p11213
注記すべてのシステム (特に 32 ビット) で、memcached アプリケーションとメモリー設定の両方に関して十分な余裕を確保してください。たとえば、4G バイトの RAM を搭載した専用の memcached ホストがある場合は、3500M バイトを超えるメモリーサイズを設定しないでください。これができなかった場合は、クラッシュや深刻なパフォーマンスの問題が発生する可能性があります。
-
-l interface
接続を待機するネットワークインタフェース/アドレスを指定します。デフォルトでは、使用可能なすべてのアドレス (
INADDR_ANY
) で待機します。shell> memcached -l 192.168.0.110
IPv6 アドレスのサポートは memcached 1.2.5 で追加されました。
-
-p port
接続に使用する TCP ポートを指定します。デフォルトは 18080 です。
shell> memcached -p 18080
-
-U port
接続に使用する UDP ポートを指定します。デフォルトは 11211 です。0 を指定すると UDP が無効になります。
shell> memcached -U 18080
-
-s socket
待機に使用する Unix ソケットを指定します。
クライアントと同じサーバーで memcached を実行する場合は、
-s
オプションを使用すると、ネットワークインタフェースが無効になり、ローカルの Unix ソケットを使用できます。shell> memcached -s /tmp/memcached
Unix ソケットを使用すると、ネットワークサポートが自動的に無効になり、ネットワークポートが節約されます (Web サーバーやその他のプロセスでより多くのポートを使用できます)。
-
-a mask
Unix ソケットで使用するアクセスマスク (8 進数) を指定します。デフォルトは 0700 です。
-
-c connections
memcached サービスに対する同時接続の最大数を指定します。デフォルトは 1024 です。
shell> memcached -c 2048
このオプションは、(memcached サービスへの過負荷を避けるために) 接続数を減らすか、または接続数を増やして memcached サーバーを実行しているサーバーをより効果的に利用するために使用します。
-
-t threads
受信した要求を処理するときに使用するスレッドの数を指定します。
デフォルトでは、memcached は 4 つの並列スレッドを使用するように構成されます。スレッドは、ロックシステムを使用して異なるスレッドによる同じ値の上書きや更新を防止することにより、キャッシュ内のデータの格納と取得のパフォーマンスを向上させます。スレッドの数を増減するには、
-t
オプションを使用します。shell> memcached -t 8
-
-d
memcached をデーモン (バックグラウンド) プロセスとして実行します。
shell> memcached -d
-
-r
コアファイルの上限サイズを最大化します。これにより、障害が発生したときにメモリー領域全体が setrlimit で設定された上限までコアファイルとしてディスクにダンプされます。
-
-M
メモリーが使い果たされたときに、クライアントにエラーを返します。これは、キャッシュから古い項目を削除して新しい項目が入るようにする通常の動作に代わって適用されます。
-
-k
ページングされたすべてのメモリーをロックダウンします。これにより、新しい項目がキャッシュに格納されたときにメモリーの新しいスラブを割り当てるのではなく、使用前にメモリーが確保されます。
注記ロックできるメモリーの量には、ユーザーレベルの制限があります。使用可能なメモリー量を超えて割り当てようとすると、失敗します。(
-u user
のユーザーではなく) デーモンを起動するときに使用したユーザーに対して制限を設定するには、シェル内で ulimit -S -l NUM_KB を使用します -
-v
冗長モード。メインイベントループの実行中にエラーおよび警告を出力します。
-
-vv
高冗長モード。
-v
で出力される情報に加えて、個々のクライアントコマンドと応答も出力されます。 -
-vvv
超冗長モード。
-vv
で出力される情報に加えて、内部の状態遷移も表示されます。 -
-h
ヘルプメッセージを出力して終了します。
-
-i
memcached と
libevent
のライセンスを出力します。 -
-I mem
memcached インスタンスに格納できるオブジェクトの最大サイズを指定します。このサイズは、単位の接尾辞 (キロバイトを表す
k
、メガバイトを表すm
) をサポートします。たとえば、サポートされる最大オブジェクトサイズを 32M バイトに増やすには:shell> memcached -I 32m
指定できる最大オブジェクトサイズは 128M バイト、デフォルトは 1M バイトです。
このオプションは 1.4.2 で追加されました。
-
-b
バックログキューの制限を設定します。バックログキューによって、memcached による処理を待機できるネットワーク接続の数が構成されます。この制限を増やすと、クライアントが memcached インスタンスに接続できないエラーを受信する回数が減る可能性がありますが、サーバーのパフォーマンスは向上しません。デフォルトは 1024 です。
-
-P pidfile
memcached インスタンスのプロセス ID を
file
に保存します。 -
-f
チャンクサイズの増大係数を設定します。新しいメモリーチャンクを割り当てる場合、新しいチャンクの割り当てサイズはデフォルトのスラブサイズにこの係数を掛けて決定されます。
大規模なテストを行わずにこのオプションの効果を確認するには、
-vv
コマンド行オプションを使用して、計算されたスラブサイズを表示します。詳細については、セクション16.6.2.8「memcached ログ」を参照してください。 -
-n bytes
キー + 値 + フラグ情報に割り当てられる最小領域。デフォルトは 48 バイトです。
-
-L
大規模メモリーページをサポートするシステムで、大規模メモリーページの使用を有効にします。大規模メモリーページを使用すると、memcached は 1 つの大きなチャンクに項目キャッシュを割り当てることができるようになり、メモリーへのアクセス時にミスの数が減ってパフォーマンスが向上する可能性があります。
-
-C
コンペアアンドスワップ (CAS) 操作の使用を無効にします。
このオプションは memcached 1.3.x で追加されました。
-
-D char
デフォルトの文字をキープリフィクスと ID の区切りとして使用するように設定します。これは、プリフィクス単位の統計レポートで使用されます (セクション16.6.4「memcached の統計の取得」を参照してください)。デフォルトはコロン (
:
) です。このオプションを使用すると、統計収集が自動的にオンになります。使用しなかった場合は、stats detail on
コマンドをサーバーに送信して統計収集を有効にできます。このオプションは memcached 1.3.x で追加されました。
-
-R num
イベントプロセスあたりの最大要求数を設定します。デフォルトは 20 です。
-
-B protocol
バインディングプロトコル (つまり、クライアント接続に対するデフォルトの memcached プロトコルサポート) を設定します。オプションは、
ascii
、binary
、またはauto
です。自動 (auto
) がデフォルトです。このオプションは、memcached 1.4.0 で追加されました。