Установка и настройка memcacheq на CentOS 6.2

в 18:02, , рубрики: caching, CentOS, centos 6, memcached, queue, Серверное администрирование, метки: , , , ,

Понадобилось недавно установить memcached и memcacheq на CentOs 6.2 и к сожалению было обнаружено, что готовых в репозитории нет, и надо компилировать самостоятельно. Причем, по сборке второго — нормальной и актуальной инструкции нету ни на русском, ни на английском. Последняя которая есть на всех сайтах достаточно древна и не совсем актуальна. Поиск гуглом находит только какие-то убогие китайские сайты. Вот и хочу восполнить этот пробел в русском сегменте сети.

Зависимости MemcacheQ

  1. Libevent > 2.0.19 (текущая 2.0.19)
  2. Berkeley DB > 4.7 (текущая 5.3.21)

Версия libevent в репозитории
[root@oracle134 ~]# rpm -qa libevent

libevent-1.4.13-1

Berkeley DB в репозитории нет.
Все дальнейшие действия выполняются под учетной записью с правами root.

Ставим Libevent

Переходим в любую удобную вам папку — например /tmp

  1. [root@oracle134 tmp]#wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.19-stable.tar.gz
  2. [root@oracle134 tmp]#tar xvzf libevent-2.0.19-stable.tar.gz
  3. [root@oracle134 tmp]#cd libevent-2.0.19-stable
  4. [root@oracle134 libevent-2.0.19-stable]#./configure
  5. [root@oracle134 libevent-2.0.19-stable]#make
  6. [root@oracle134 libevent-2.0.19-stable]#make install
Berkeley DB

Berkeley DB нужно сначала скачать с сайта Oracle.com и загрузить на сервер вручную, поскольку Оракл требует обязательной регистрации и аутенфикации на сайте для скачивания. Далее…

  1. [root@oracle134 tmp]#tar xvzf db-5.3.21.tar.gz
  2. [root@oracle134 tmp]]#cd db-5.3.21/build_unix
  3. [root@oracle134 build_unix]#../dist/configure
  4. [root@oracle134 build_unix]#make
  5. [root@oracle134 build_unix]#make install
Несколько дополнительных действий

Нужно добавить строки:

/usr/local/lib
/usr/local/berkeleydb/lib/
в файл /etc/ld.conf.so, что бы подгрузить нужные .so модули.

  1. echo '/usr/local/lib' >> /etc/ld.conf.so
  2. echo '/usr/local/berkeleydb/lib/' >> /etc/ld.conf.so

Осталось их загрузить и создать ссылку на директорию, для того, что бы memcacheq скомпилировался, поскольку в его конфиге наживую прописан не верный, старый, путь к файлам Berkeley DB.

  1. [root@oracle134 tmp]#ln -s /usr/local/berkeleydb/ /usr/local/BerkeleyDB.4.7
  2. [root@oracle134 tmp]#ldconf
Ставим MemcacheQ
  1. [root@oracle134 tmp]#wget http://memcacheq.googlecode.com/files/memcacheq-0.2.0.tar.gz
  2. [root@oracle134 tmp]#tar xvzf memcacheq-0.2.0.tar.gz
  3. [root@oracle134 tmp]#cd memcacheq-0.2.0
  4. [root@oracle134 memcacheq-0.2.0]#./configure –enable-threads
  5. [root@oracle134 memcacheq-0.2.0]#make
  6. [root@oracle134 memcacheq-0.2.0]#make install

После всего вышеописанного процесс должен пройти без проблем. Для проверки установки запустим и попробуем подсоедениться:

  1. [root@oracle134 memcacheq-0.2.0]#memcacheq -d -r -H /tmp/memcacheq -N -R -v -L 1024 -B 1024 > /tmp/mq_error.log -u nobody 2>&1
  2. [root@oracle134 memcacheq-0.2.0]#telnet localhost 22201

Если установить telnet соединение удалось, значит все настроено верно. Можно выполнить команды stats/stats queue для того, что бы посмотреть текущее состояние очередей. quit — что бы выйти.

Кратко по опциям с которыми запущен memcacheq:

  • -d — заустить как демон
  • -H /tmp/memcacheq — файл где храниться база очередей
  • -u nobody — запуск от имени пользователя nobody
  • -L 1024 — размер буфера логов
  • -B 1024 — размер элемента
  • -R — автоматическое удаление не нужных логов
  • -v -подробный режим логов
  • -N — включение какой-то не понятной опции DB_TXN_NOSYNC для увеличения производительности
  • -r -делает максимальным размер файла ядра(с данными?)

Последние мелочи

Остается лишь добавить скрипт запуска в /etc/init.d/, который можно безвозмедно взять по ссылке
gkirok.blogspot.com, скопировать в /etc/init.d/, дать права на выполнение и добавить в автозагрузку

  1. [root@oracle134 ~]#chmod +x /etc/init.d/memcacheq
  2. [root@oracle134 ~]#chkconfig memcacheq on
Ссылки

  1. libevent
  2. Berkeley DB
  3. MemcacheQ

PS.
Получил инвайт из песочницы, переношу статью в паблик. Если выбрал не те хабы, просьба сильно не пинать, а указать верные.

Автор: someoneisusingmyusualnick

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js