Назад | Перейти на главную страницу

Базовая конфигурация Memcache

Я установил memcache для сайта Drupal с расширением memcached pecl. Все работает нормально, но я все еще борюсь с настройками конфигурации.

Например, следуя советам на 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 не закрываются на моем сервере, могу ли я безопасно их создать? Возможно ли, чтобы эти файлы находились где-то еще, и в этом случае где мне искать или есть ли способ найти эту информацию?

Наконец, мы будем очень признательны за любые ресурсы, руководства или ссылки на документацию. Я просмотрел Wiki на сайте memcache и смог найти только пару статей для начинающих.

Вы не рассказали нам о своей ОС / дистрибутиве. Кроме того, вы не сообщили нам, как вы установили memcached.

Обычно вы получаете образец файла конфигурации под /etc/ когда вы устанавливаете memcached с помощью apt-get в системах на базе Debian и rpm или yum под redhat, fedora или centos.

Если вы установили его из исходного кода, вы можете не получить образец файла под /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

Вы также можете передать те же параметры из командной строки.

По умолчанию (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):

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

(Вы заметите, что здесь используются переменные, определенные выше).

Итог, таким образом, таков:

  • Проверьте свой сценарий инициализации - если он содержит раздел, аналогичный приведенному выше (оператор if), то, безусловно, создайте соответствующий файл и поместите в него соответствующие переменные.
  • Конфигурационного файла нет - не создавайте его, так как он не будет использоваться.

Если вы не можете найти в 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