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

Правильный способ настройки memcache

Я пытаюсь изменить ограничение размера памяти memcache в моем окружении CentOS. Я изучил другие вопросы и выяснил, что ДОЛЖЕН быть файл, который в основном находится в /etc/sysconfig/memcached а если нет, я смогу найти его с locate.

Оба варианта у меня не сложились. Единственный найденный файл находится в /root/rpms/memcached-1.4.5/t/sasl/memcached.conf И, похоже, не ссылается на ограничения памяти.

Когда я запускаю memcache, я устанавливаю его через командную строку следующим образом:

memcached -d -m 2048 -u root -l 0.0.0.0 -p 11211

Я предполагаю, что это означает, что я просто не использую какой-либо файл настроек конфигурации, и, возможно, лучше его добавить. Как мне добавить такой файл и заставить memcached начать использовать его конфигурацию.

Попробуйте найти файл конфигурации с помощью rpm -q memcached -c

Если у вас есть сценарий инициализации для memcached в /etc/init.d/, вы можете увидеть, пытается ли он загрузить какой-либо файл конфигурации, если нет, или нет сценария инициализации, вы можете его создать.

Это пример сценария инициализации для моего memcached:

#! /bin/sh
#
# chkconfig: - 55 45
# description:  The memcached daemon is a network memory cache service.
# processname: memcached
# config: /etc/sysconfig/memcached
# pidfile: /var/run/memcached/memcached.pid

# Standard LSB functions
#. /lib/lsb/init-functions

# Source function library.
. /etc/init.d/functions

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

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

# Check that networking is up.
. /etc/sysconfig/network

if [ "$NETWORKING" = "no" ]
then
        exit 0
fi

RETVAL=0
prog="memcached"
pidfile=${PIDFILE-/var/run/memcached/memcached.pid}
lockfile=${LOCKFILE-/var/lock/subsys/memcached}

start () {
        echo -n $"Starting $prog: "
        # Ensure that $pidfile directory has proper permissions and exists
        piddir=`dirname $pidfile`
        if [ ! -d $piddir ]; then
                mkdir $piddir
        fi
        if [ "`stat -c %U $piddir`" != "$USER" ]; then
                chown $USER $piddir
        fi

        daemon --pidfile ${pidfile} memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P ${pidfile} $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch ${lockfile}
}
stop () {
        echo -n $"Stopping $prog: "
        killproc -p ${pidfile} /usr/bin/memcached
        RETVAL=$?
        echo
        if [ $RETVAL -eq 0 ] ; then
                rm -f ${lockfile} ${pidfile}
        fi
}

restart () {
        stop
        start
}


# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status -p ${pidfile} memcached
        RETVAL=$?
        ;;
  restart|reload|force-reload)
        restart
        ;;
  condrestart|try-restart)
        [ -f ${lockfile} ] && restart || :
        ;;
  *)
        echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart|try-restart}"
        RETVAL=2
        ;;
esac

exit $RETVAL

Вы можете видеть, что сценарий инициализации пытается загрузить файл конфигурации в это место:

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

Вы можете попробовать скопировать этот скрипт и сделать файл конфигурации / etc / sysconfig / memcached Это пример конфигурации:

PORT="66266"
USER="memcached"
MAXCONN="1024"
CACHESIZE="2048"
OPTIONS=""

После создания сценария инициализации (не забудьте указать chmod + x /etc/init.d/memcached) и файла конфигурации вы сможете запустить memcached с помощью service memcached start

Впоследствии вы можете добавить этот сценарий инициализации в chkconfig, и тогда система автоматически запустит memcached после перезапуска.

chkconfid -add memcached
chkconfig memcached on