Основна конфігурація Memcache


14

Я встановив 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, і міг знайти лише пару релевантних статей для початківців.


1
Інструкції з друпалу невірні. В -lопції регулює до якого інтерфейси Memcached будуть слухати, НЕ які будуть обслуговуватися господарі.
Уейн Конрад

Відповіді:


17

Ви не розповіли нам про вашу ОС / дистрибутив. Крім того, ви не сказали нам, як встановили запам’ятовування.

Зазвичай, ви отримаєте зразок конфігураційного файлу під /etc/час встановлення об'єднаного файлу, використовуючи apt-getв системах на базі debian та rpmабо yumпід redhat, fedora або centos.

Якщо ви встановили його з джерела, ви, можливо, не отримаєте зразок файлу /etc/(я сам не встановив пам’яті з джерела). Однак ви можете шукати зразок конфігураційного файла в розпакованій вихідній папці.

У будь-якому випадку ви можете 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

Ви також можете передавати ті самі параметри з командного рядка.


Debian GNU / Linux 5.0.9 (lenny) / memcached 1.4.10. Я пройшов стільки кроків для того, щоб встановити memcache, що я не можу точно згадати, як я це зробив. Він може бути складений з джерела, оскільки відсутні ці конфігураційні файли. Я точно знаю, що розширення pecl були встановлені з джерела, просто тому, що використання pecl не працювало. Дивлячись на вихідну папку, я не міг сказати, що буде зразковим конфігураційним файлом ...
PatrickS

@PatrickS: я оновив свою відповідь.
Халед

Я створив /etc/init.d/memcached, використовуючи вищевказані параметри командного рядка для налаштування memcache
PatrickS

11

За замовчуванням (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 немає файлу конфігурації. Він використовує параметри командного рядка , наприклад (зі скрипта для init RHEL / CentOS):

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"

Перезапустити запам’ятоване

service memcached restart

Щоб перевірити, чи доданий параметр, спробуйте:

ps aux | grep memcached
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.