Memcacheの基本構成


14

memcached pecl拡張を使用してDrupalサイトに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を閲覧しましたが、初心者向けの関連記事は数件しか見つかりませんでした。


1
drupalの指示は正しくありません。この-lオプションは、memcachedがリッスンするインターフェイスを規制するものであり、どのホストにサービスを提供するかでありません
ウェインコンラッド

回答:


17

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

通常、debianベースのシステムおよび/またはredhat、fedora、centos /etc/を使用apt-getしてmemcachedをインストールすると、サンプルの設定ファイルが取得されます。rpmyum

ソースからインストールした場合、サンプルファイルを取得できない場合があります/etc/(自分でソースからmemcachedをインストールしませんでした)。ただし、展開されたソースフォルダーでサンプルの構成ファイルを検索できます。

とにかく、locate memcached.confシステム内の1つを探すために使用できます。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

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


Debian GNU / Linux 5.0.9(lenny)/ memcached 1.4.10 .memcacheをインストールするために非常に多くの手順を実行したので、どのように実行したかを覚えていません。これらの構成ファイルが欠落しているため、ソースからコンパイルされた可能性があります。確かに、peclの使用が機能しなかったという理由だけで、pecl拡張機能がソースからインストールされたことを知っています。ソースフォルダーを見ると、サンプルの構成ファイルがどうなるか
わかり

@PatrickS:答えを更新しました。
ハレド

上記のコマンドラインオプションを使用してmemcacheを構成する/etc/init.d/memcachedを作成することになりました
-PatrickS

11

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

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

初期化スクリプト(CentOS)/etc/init.d/memcached:

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

上記は、ファイルが存在する場合、それを「ソース」(つまり、その内容を読み取って評価する)に相当します。

私の知る限り、memcachedには構成ファイルがありません。たとえば、コマンドラインパラメーターを使用します(RHEL / CentOS initスクリプトから)。

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

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

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

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

3

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.