web-dev-qa-db-ja.com

Memcacheの基本構成

Drupal memcached pecl拡張機能を備えたサイトにmemcacheをインストールしました。すべて正常に動作していますが、まだ構成設定に苦労しています。

たとえば、drupal.orgに関するアドバイスに従うと

You should probably lock down the memcache server so that it only listens for 
connections from the hosts that need to be served, as the default is that 
memcache listens to connections from all addresses. 
So, to close that hole, edit /etc/sysconfig/memcached with:

OPTIONS="-l ${HOSTIP}"

問題は、サーバーにこのファイルがないことです。いずれにしても、この場所にはありません。他のいくつかの記事で/etc/memcached.confについて言及していますが、このファイルも見つかりません。

/ etc/sysconfig/memcachedまたは/etc/memcached.confがサーバーに存在しないことを考慮して、それらを安全に作成できますか?これらのファイルを別の場所に置くことは可能ですか?その場合、どこを見る必要があるか、その情報を見つける方法はありますか?

最後に、すべてのリソース、チュートリアル、またはドキュメントのリンクをいただければ幸いです。 memcacheのサイトのWikiを閲覧したところ、初心者向けの関連記事がいくつかしか見つかりませんでした。

14
PatrickS

OS /ディストリビューションについて教えてくれませんでした。また、memcachedのインストール方法も教えてくれませんでした。

通常、debianベースのシステムで/etc/を使用し、redhat、Fedoraまたはcentosでrpmまたはyumを使用してmemcachedをインストールすると、apt-getの下にサンプル設定ファイルが表示されます。 。

ソースからインストールした場合、/etc/の下にサンプルファイルを取得できない場合があります(私はソースからmemcachedをインストールしていません)。ただし、解凍されたソースフォルダーでサンプル構成ファイルを探すことができます。

とにかく、locate memcached.confを使用して、システム内で検索することができます。検索キャッシュを更新するには、その前にSudo updatedbを実行する必要があります。

これが私のシステムの設定ファイルです。あなたはそれを使うことができます:

# Run memcached as a daemon. This command is implied, and is not needed for the
# daemon to run. See the README.Debian that comes with this package for more
# information.
-d

# Log memcached's output to /var/log/memcached
logfile /var/log/memcached.log

# Be verbose
# -v

# Be even more verbose (print client commands as well)
# -vv

# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 64

# Default connection port is 11211
-p 11211
# Run the daemon as root. The start-memcached will default to running as root if no
# -u command is present in this config file
-u memcache

# Specify which IP address to listen on. The default is to listen on all IP addresses
# This parameter is one of the only security measures that memcached has, so make sure
# it's listening on a firewalled interface.
-l 127.0.0.1

# Limit the number of simultaneous incoming connections. The daemon default is 1024
# -c 1024

# Lock down all paged memory. Consult with the README and homepage before you do this
# -k

# Return error when memory is exhausted (rather than removing items)
-M

# Maximize core file limit
# -r

コマンドラインから同じオプションを渡すこともできます。

17
Khaled

デフォルト(CentOS)/ etc/sysconfig/memcached:

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""

Initスクリプト(CentOS)/etc/init.d/memcached:

...
if [ -f /etc/sysconfig/memcached ];then
        . /etc/sysconfig/memcached
fi
...

上記は、ファイルが存在する場合、「ソース」する(つまり、その内容を読み取り、評価する)ことを意味します。

私の知る限り、memcachedには構成ファイルがありません。 command line パラメータを使用します(例:(RHEL/CentOS initスクリプトから)):

daemon --pidfile ${pidfile} memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P ${pidfile} $OPTIONS

(上記で定義した変数がここで使用されることに注意してください)。

したがって、一番下の行は次のとおりです。

  • Initスクリプトを確認します-上記と同様のセクション(ifステートメント)が含まれている場合は、必ず一致するファイルを作成し、その中に適切な変数を配置します。
  • 設定ファイルはありません-使用されないので作成しないでください。
11
cyberx86

CentOSで/etc/init.d/memcachedが見つからない場合は、以下を試してください。

nano /usr/lib/systemd/system/memcached.service

そして変更:

ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS

に:

ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -I $MAXITEMSIZE -c $MAXCONN $OPTIONS

/ etc/sysconfig/memcachedに追加した後

MAXITEMSIZE="128m"

Memcachedを再起動します

service memcached restart

パラメータが追加されているかどうかを確認するには:

ps aux | grep memcached
3
onalbi