Настраиваем сервер для LiveStreet. Часть VIII. APC, Memcached & Sphinx.

Предыдущие части:

На мой взгляд, на данный момент, есть только два осмысленных варианта настроить кэширование кода и данных (учитывая то, что LiveStreet поддерживает, конечно). Первый вариант — APC + Memcached. Второй вариант — XCache.

Почему?
  • Во-первых все остальные PHP оптимизаторы(eAccelerator, например) сильно проигрывают современным версиям APC и XCache. Всесторонне, особенно в разрезе надёжности. ( Особый случай это ZendOptimiser+ — оно, по отзывам, быстрое и надёжное, но не очень открытое и не очень бесплатное. И я, лично, не тестировал )
  • Во-вторых, как opcode кэшер APC, актуальных версий, лучше XCache. И быстрее и стабильней. Да, это субъективное мнение. Да, выигрыш незначителен. Но лучше. :)
  • А вот с кэшированием данных XCache справляется намного лучше Memcached. И поэтому если говорить именно об общей производительности, то выигрывает XCache. И это вполне ожидаемо, учитывая что Memcached — софт предназначенный, прежде всего, для многосерверных конфигураций.

Из вышеописанного проистекает моё личное мнение:
  • Высокая надежность и хорошая производительность = APC + Memcached( и ниже будет описан именно этот вариант).
  • Максимально возможная производительность с приемлемой надёжностью = XCache.

Еще одно важное замечание: коммуникации между сервисами лучше настраивать не через TCP/IP, а через UNIX socket. В рамках «всё на одном сервере» это и быстрее и надёжней. Именно таким образом настраивалась связка Apache + php-fpm в прошлых частях. Таким же образом, по возможности, будем действовать и дальше.

Устанавливаем APC

apt-get -t squeeze-backports install php-apc

Слегка правим конфигурационный файл /etc/php5/conf.d/apc.ini:
extension=apc.so
apc.enabled=1
apc.shm_size=64M
На самом деле, просто добавили пару последних строк. apc.shm_size — определяет сколько памяти выделять. По умолчанию 32M, и этого вполне хватит для не большого сайта. Сколько выделять? — поставить 64, понаблюдать за использованием памяти несколько дней, скорректировать. Более подробно о конфигурационных опциях: www.php.net/manual/en/apc.configuration.php.

Копируем GUI для APC в корень нашего сайта:
cp /usr/share/doc/php-apc/apc.php /var/www/superls.ru/public/

Чтобы начало работать нужно перестартовать php-fpm.
/etc/init.d/php5-fpm restart

Убеждаемся что всё работает:
http://superls.ru/apc.php
(в прошлой части мы закрыли публичный доступ к этому линку). Если APC заработал как надо, там будет куча текста и картинок. Если нет — так и напишут.

Устанавливаем memcached
apt-get install memcached

Вносим изменения в конфигурационный файл /etc/memcached.conf. Сначал добавляем в самый конец следующее:
# Specify the maximum size permitted for storing an object within the memcached instance.
# -I 8m
# Unix socket path to listen on (disables network support).
-s /var/run/memcached.socket
# Permissions (in octal format) for Unix socket created with -s option.
-a 0777
Кроме того вносим в этот файл следующие изменения:
  • в строке которая начинается на -m пишем сколько мы выделяем процессу памяти для кэширования (в мегабайтах), по умолчанию там 64(меньше ставить остро не рекомендуется)
  • строку которая начинается на -p комментируем
  • строку которая начинается на -l комментируем
  • в строке которая начинается на -u меняем nobody на root

Особое замечание: закомментированная выше опция -I определят максимальный размер объекта данных, который может быть помещён в кэш. По умолчанию = 1m. Менять это значение остро не рекомендуется, однако, в зависимости от конфигурации, плагины LiveStreet могут пытаться запихнуть в кэш нечто большее, что приведёт к характерной PHP-ошибке. Чтобы убрать эту проблему (если вдруг возникнет) можно использовать эту опцию.

Чтобы изменнения вступили в силу перезапускаем:
/etc/init.d/memcached restart

Простейшая проверка работоспособности:
echo "stats" | socat unix-connect:/var/run/memcached.socket stdio

Для memcached есть несколько GUI высокой навороченности (например phpMemcachedAdmin ), но это всё imho излишество. Я остановил свой выбор на старой версии версии вот этого скрипта. Старой, потому что новая обросла никому не нужными рюшечками, но так и не научилась работать с UNIX socket. Модифицированный мной файл memcache.php взять тут: github.com/Gmugra/memcachephp и закинуть в /var/www/superls.ru/public/. Вызываем:
http://superls.ru/memcache.php
В прошлой части мы закрыли публичный доступ и к этому линку тоже. Идея так же, что и с APC — наблюдаем за реальным расходом памяти и корректируем настройки.

Устанавливаем Sphinx
Идём сюда: sphinxsearch.com/downloads/release/. Находим наш дистрибутив (для 64bit это будет — Debian 6.0.5 Squeeze x86_64 DEB, для 32bit — Debian 6.0.5 Squeeze i386 DEB ). Кликаем в «Download» справа от нужного дистрибутива. На открывшейся странице ничего не заполняем, просто запоминаем линк, который под текстом «I accept GPLv2, give me the file!» в левом нижнем углу.

Идем в консоль и выполняем команду:
wget http://sphinxsearch.com/files/sphinxsearch_2.0.7-release-1_amd64.deb

В этой команде линк после wget — тот самый что мы нашли на официальном сайте.

После этого устанавливаем командой:
dpkg -i sphinxsearch_2.0.7-release-1_amd64.deb

Естественно, с корректировкой номера версии в полученном файле. 2.0.7-release-1 — это актуальное в данный момент.

Однако, последний на данный момент, бинарник sphinx 2.0.7(уж не знаю что будет с будущими версиями) слинкован с MySql 5.1, а у нас стоит MySql 5.5. Поэтому, после установки, нужно дать ему то, что он хочет вот так:
apt-get -f install

И на этом установка Sphinx завершена.

Продолжение в следующей части. В которой мы наконец-то доберёмся до LiveStreet :)
Часть IX. LiveStreet.

67 комментариев

avatar
Не лучше было про xcache написать? Он быстрей стабильней и не требует костылей в виде memcache
avatar
Поддерживаю.
Особенно интересует вопрос тюнинга настроек xcache.
avatar
Повторюсь:
1. XCache, совершено точно, менее стабилен. Я тоже был в восторге от XCache, пока у меня не возникла с ним проблема, приводящая к крашам php-fpm, которую я решить так и не смог. А связка APC+memcached не вызывала проблем стабильности нигде и никогда.
2. Как op code cacher XCache 3.0.1 по производительности проигрывает APC 3.1.9
3. Как дата кэшер XCache выигрывает у memcached. Судя по моим наблюдениям речь идёт о выигрыше в ~25% примерно сравнительно с memcached настроенным через Unix socket. Это очень не мало, да.

В итоге я сознательно описываю наиболее без проблемное решение.
avatar
Значит вы не смогли его настроить.
avatar
Ы? Вы так говорите как будто там есть какая-то магия в настройках. Там нет ничего особенного — обычный тюнинг.

Решение обязано быть стабильным при любых настройках, а уж особенно с настройками по умолчанию. Настройки — это только борьба за производительность.

И уж точно, ни при каких условиях, не должно эпизодически убивать pool php-fpm c «signal 11 (SIGSEGV)» — проблема с которой сталкивается народ(и я в том числе столкнулся), по совершенно разным причинам, что характерно.

APC+memcached будут работать стабильно всегда. чтобы вы там в настройках не навояли. Се ля ви.
avatar
Именно так, у меня например под перемеренные надо больше памяти, чем под скрипты, выяснил смотря статистику.
Я его уже использую несколько лет, с тех пор как eaccelerator «испортился», использую на апаче и php-fpm, проблем нет. Нагрузка стабильно не мнение 1к соединений в сек. и более 20к юников, 200к пейджвью в сутки, описанных вами проблем не наблюдаю, на сейчас 7 дебиан, до этого был 6 дебиан.
avatar
А эта проблема не стабильна. у кого-то есть, у кого-то нет. Один админ писал в сети, что у него на 1-ом из 10-ка подконтрольных серверов, с идентичными конфигурациями возникала. И решалось у разных людей разным образом.

Для меня это все означает только одно — XCache менее стабилен. Это не значит, что конкретно у вас напрмиер будут с ним хоть какие-то проблемы. Это просто значит, что вероятность отхватить проблем с ним больше чем при выборе APC+memcached. Вот и всё.
avatar
Предположу, что проблемы с железом, так как ни разу не встречал ее, кстати один админ не показатель, но с тем что писать надо про APC+костыль к нему, пожалуй тогда соглашусь, ибо руководство для новичков…
avatar
На самом деле всё не так плохо. Время генерации cтраницы у меня выдавало примерно такую картинку:
вообще без кэщирования — 350ms
APC + memcache — 140ms
XCache — 115ms
avatar
Ну Я вот особо ничего не воял, делал все по мануалу, но при попытке рестарта апача он вроде и стартовал, но не работал. В логах были ошибки APC. Переустановил его, все почистил — все работает вроде. Но уверенности в том, что он мега стабильный у меня нет.
avatar
APC не связан с Apache, он связан с PHP. После установки APC всё что нужно перестартовать: php-fpm — как и написано в топе. «В логах были ошибки APC» мне к сожалению ничего ценного не говорит. Если бы опубликовали ошибку, можно было бы попробовать понять, в чём было дело, а в таком виде я могу только предположить, что вы всё же не всё делали по мануалу.
avatar
Хорошо было бы, если бы Вы написали про Xcache тоже… Право выбора уже за юзверями… А так Я пошел рыскать мануалы в другом месте)
avatar
изменил memcached.conf так, как написали и сайты на сервере больше не доступны, а вернуть осходные настройки в файл через ssh не могу, т.к. отказывает в доступе к нему )
  • dsg
  • 0
avatar
ан, нет, прошу прощения. Это из-за добавленных в APC 2-х строчек было.
avatar
Что за версия APC у вас?
avatar
а как ее узнать? (хостер ставил из офф. репозиториев)
avatar
Ну… apc.php например показывает :) Где этот файл найти — в топике упомянуто. У более старой версии, кажется, бы косяк с буквой «M» при указании размера. нужно без неё указывать размер.
avatar
у более старой по сравнению с какой?
Кстати, заметил, что Вы почти никогда в своих топиках не указываете версии устанавливаемого ПО (очень редко).

У меня стоит версия 3.1.3p1
avatar
3.1.9 поставится если установите как у в топе описано. настоятельно рекомендую. может быть причиной вашей проблемы вполне.
avatar
я не указыаю потому тчо бессмыслено. :) те же действия через полгода выдадут более новые версии скорее всего :)
avatar
тогда еще вопрос: его можно переставлять поверх старого или надо старый apt-get remove?
avatar
я бы сделал так
apt-get purge php-apc
apt-get -t squeeze-backports install php-apc
только убедитесь сначала что у вас squeeze-backports поключен в /etс/apt/sources.list — описано в третей части.
avatar
Пожалуй это единственный топик, в котором не нечего, практически прокоментировать… :)
Разве только
в строке которая начинается на -u меняем nobody на root
Зачем?
avatar
Иначе c UNIX socket работать толком отказывалось.
avatar
В таком случае надо понять, что не так, а не цеплять всё на рута и с 777.
avatar
Ну зла то нет. никто же извне не долезет всё равно. А демоны многие так и так под рутом ходят.
avatar
Незнаю незнаю, недавно ставил xcache 2.0.1-rc3 из исходников. Сначала был поражен высокой скорости загрузки страниц. выделил под оба кэша по гигу, то есть в сумме 2 гига, поставил админку, спустя какое то время, некоторые страницы начали выдавать эрроры(страница блога, люди, активность), которых до этого вообще небыло, вообще несколько месяцев всеработало хорошо, а потом решил поставить xcache, и 4 новых плагина. Ну думаю ладно отключил новые плагины, почистил кэш xc — не сработало, рестартнул апач, фпм — не сработало, перезагрузил сервер, выключил обсалютно все плагины — НЕ СРАБОТАЛО! Причем были бекапы сделанные за день до установки xcache, накатывая их проблема уходила на некоторых страницах а потом опять появлялась, в данный момент полностью переустановил debian и все по, поставил последний 1.03 через инсталл — проблемы не наблюдаю.
avatar
Если интересно, ставил xcache вот так howitmake.ru/blog/debian/62.html#comment1895
avatar
XCache 2 и XCache 3 imho две большие разницы. Первый категорически не рекомендую. Да смысл в старой версии?
а в остальном… чуть больше стабильности VS чуть больше производительности. Дело вкуса. Потерю 50ms я лично смогу пережить :)
avatar
После всех действий apc — работает, вижно из админки. А вот мемкэш админка показывает что 100% кэша не используется, в конфиге лс ставлю кэширование true, тип memory, появляется эррор связанный с мемкэшом в самом верху сайта. Я так понимаю это из за того, что закомментировали #-l 127.0.0.1 и #-p 11211 как тогда сделать правильно?
avatar
avatar
Потому что memcached настроен через socket. надо в /config/config.local.php внести:
$config['memcache']['servers'][0]['host'] = 'unix:///var/run/memcached.socket';
$config['memcache']['servers'][0]['port'] = '0';

Подробно об этом в следующей части.
avatar
Заработало
avatar
Что-то я вас не понял.
Вы в конфиге закомментировали параметры -l, -p. Так?
В таком случае надо будет указать -s и путь до сокета. Перезапустить memcached и глянуть, что он у вас там точно слушает
netstat -lnp

Примерно тут указать
unix://путь/до/сокета
.
avatar
Спасибо сработало
avatar
С правами бы еще разобратся, лишний раз рута не хочется давать все таки.
avatar
не страдайте паранойей :) в чем риск то?
avatar
никто не знает, можно ли настроить сфинкс так, что бы он выводил похожие запросы?
Например «игруки» — > «игрушки»
avatar
Да можно. надо подтянуть словарь синонимов. читайте тут: livestreet.ru/blog/dev_documentation/13482.html
avatar
Скажите, будет ли часть с описанием резервного копирования?
avatar
Да.
avatar
Это отлично. Спасибо.
avatar
Я настроил сервер в соответствии с Вашими мануалами, но вот беда: у меня перестали работать некоторые ajax-функции, например меню плагина admin users и при добавлении нового топика (стоит aceBlogExtender больше не проводит выборку блогов в категориях и не выводит описание блога). Может быть и еще где-то есть проблемы, но пока я о них не знаю. ajax-проверки при регистрации работают. Никаких ошибок нет, в логах все нормально.
Подскажите, пожалуйста, где искать проблему?
  • dsg
  • 0
avatar
это может быть как-то связано с правами на файлы/папки?
avatar
Проблема решена переустановкой всех плагинов
avatar
Полезные уроки, спасибо!
avatar
В общем Я таки остановился на Xcache 3.0.1
Установка проблем вызвать не должна, все просто:
1. Снова подключаем репы dotdeb (см. 6 часть)
2. Выполняем apt-get install php5-xcache
Вот мой xcache.ini:
; configuration for php xcache module
extension=xcache.so
[xcache.admin]
#админка. надо или нет - смотрите сами, но какое то время понаблюдать рекомендую
xcache.admin.enable_auth = Off
xcache.admin.auth = Off
xcache.admin.user = "admin"
xcache.admin.pass = "md5_pass"
[xcache]
#Этот параметр опишу ниже
#xcache.readonly_protection = On
#Путь, гду храним кеш
#xcache.mmap_path = /tmp/xcache
#Размер кеша
xcache.size = 512M
#Выставляйте число, равное кол-ву ядер процессора
xcache.count = 6
xcache.slots = 8K
#Срок жизни кеша
xcache.ttl = 86400
#Период, с которым будет запускаться очистка мусора
xcache.gc_interval = 86400
xcache.var_size = 16M
xcache.var_count = 14
xcache.var_slots = 16K
xcache.var_ttl = 86400
xcache.var_maxttl = 604800
xcache.cacher = On
xcache.stat = On
xcache.optimizer = On

Автоматом кеш сбрасывается раз в сутки, так же управлять можно будет из админки. Параметр xcache.readonly_protection задает кешу режим readonly, что в теории повышает надежность, однако сказывается на производительности(примерно 25%).
Если ОЗУ позволяет — можно выгрузить все в ОЗУ как в случае и с nginx'ом.
Что сказать о стабильности? У меня не было проблем — перевел два сайта общей посещаемостью 3к уников в сутки, запустил рекурсивно с 3 машины siege на 200 соединений по 10 сообщений каждая. Проблем в производительностью не было вообще, держал под нагрузкой до полутора суток. Ни ошибок, ничего. Настройки софта чуть иные, но с Xcache проблем не возникло.
avatar
В общем, как-то что-то у меня не получается. Дошел до устарновки memcached. проверил — все работает.

После чего хотел установить sphinx.
# dpkg -i sphinxsearch_2.0.8-release-1_amd64.deb
(Reading database ... 32041 files and directories currently installed.)
Preparing to replace sphinxsearch 2.0.8-release-1 (using sphinxsearch_2.0.8-release-1_amd64.deb) ...
Stopping sphinxsearch: stopped.
Unpacking replacement sphinxsearch ...
Setting up sphinxsearch (2.0.8-release-1) ...
update-rc.d: using dependency based boot sequencing

Do not forget to reindex all indexes by running: indexer --all

Starting sphinxsearch: Sphinx 2.0.8-id64-release (r3831)
Copyright © 2001-2012, Andrew Aksyonoff
Copyright © 2008-2012, Sphinx Technologies Inc (http://sphinxsearch.com)

using config file '/etc/sphinxsearch/sphinx.conf'...
WARNING: compat_sphinxql_magics=1 is deprecated; please update your application and config
listening on all interfaces, port=9312
listening on all interfaces, port=9306
precaching index 'test1'
WARNING: index 'test1': preload: failed to open /var/lib/sphinxsearch/data/test1.sph: No such file or directory; NOT SERVING
precaching index 'test1stemmed'
WARNING: index 'test1stemmed': preload: failed to open /var/lib/sphinxsearch/data/test1stemmed.sph: No such file or directory; NOT SERVING
precaching index 'rt'
precached 3 indexes in 0.001 sec
sphinxsearch is started.
Processing triggers for man-db ...


Это нормально? Я к тому, что теперь у меня сервер возвразает 500 ошибку Internal Server Error.

Последнее, когда все работало — это после установки memcache. А тепер так. куда копать?
avatar
Хотя, с другой стороны, могло что-то словаться, когда попробовал установить phpmyadmin, и сервер ругнулся так:

# apt-get install phpmyadmin
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 phpmyadmin : Depends: libapache2-mod-php5 but it is not going to be installed or
                       php5-cgi but it is not going to be installed or
                       php5 but it is not going to be installed
E: Broken packages
avatar
sphinx.conf откуда брали? явно не то, на что ссылается этот топик.
avatar
Пока ниоткуда не брал. Дефолтный. Не дошел еше до настройки sphinx. Я так понимаю, нужно настроить, как тут?
avatar
Многоуважаемый All!

Тут снова со своими ламерскими вопросами. Снова ставлю все с нуля. Вот поставил sphinx. Он вот так ругается:

dpkg -i sphinxsearch_2.0.8-release-1_amd64.deb
Selecting previously deselected package sphinxsearch.
(Reading database ... 31892 files and directories currently installed.)
Unpacking sphinxsearch (from sphinxsearch_2.0.8-release-1_amd64.deb) ...
dpkg: dependency problems prevent configuration of sphinxsearch:
 sphinxsearch depends on libpq5 (>= 8.4~0cvs20090328); however:
  Package libpq5 is not installed.
dpkg: error processing sphinxsearch (--install):
 dependency problems - leaving unconfigured
Processing triggers for man-db ...
Errors were encountered while processing:
 sphinxsearch


Это нормально?
avatar
А вы читали, пробовали вникать что тут написано? Вам перевести?
avatar
Само собой. Но для того, чтобы это все понять, нужно знать контекст.

Мне, наприер, ни о чем не говорит, что libpq5 is not installed. Что это за библиотека? Почему она не установилась? Чем мне это грозит?

Или вот: error processing sphinxsearch (--install): Так установился сфинкс или нет? Или установился, но с ошибкакми? Судя по всем с ошибками: Errors were encountered while processing: sphinxsearch

И чем мне эти ошибки грозят? Может все будет работать. Или, например, потом все не будет работать.

Вы поймите, у меня нет опыта работы с linux. Поэтому я не в теме, и вне контекста. Как тут поймешь?
avatar
Что это за библиотека?
Поиск, родной. packages.debian.org/ru/squeeze/libpq5 или
aptitude search libpg5

С остальным всё вроде понятно, что ничего не поставилось, т.к нет в системе нужных библиотек. Значит её надо установить. Если PostgreSQL не нужен, тогда вообще собрать сфинкс, указав только то, что нужно.
avatar
Почему Uptime 0 minutes, и при обновлении uptime не меняется, это так и должно быть?

General Cache Information
APC Version	3.1.3p1
PHP Version	5.3.5-1ubuntu7.11
APC Host	site.ru (site-1111) (11.111.111.111)
Server Software	Apache/2.2.17 (Ubuntu)
Shared Memory	1 Segment(s) with 128.0 MBytes
(mmap memory, pthread mutex locking)
Start Time	2013/10/27 12:31:35
Uptime	0 minutes
File Upload Support	1
File Cache Information
Cached Files	1 (440.6 KBytes)
Hits	1
Misses	1
Request Rate (hits, misses)	2.00 cache requests/second
Hit Rate	1.00 cache requests/second
Miss Rate	1.00 cache requests/second
Insert Rate	1.00 cache requests/second
Cache full count	0
User Cache Information
Cached Variables	0 ( 0.0 Bytes)
Hits	0
Misses	0
Request Rate (hits, misses)	0.00 cache requests/second
Hit Rate	0.00 cache requests/second
Miss Rate	0.00 cache requests/second
Insert Rate	0.00 cache requests/second
Cache full count	0
Runtime Settings
apc.cache_by_default	1
apc.canonicalize	1
apc.coredump_unmap	0
apc.enable_cli	0
apc.enabled	1
apc.file_md5	0
apc.file_update_protection	2
apc.filters	
apc.gc_ttl	3600
apc.include_once_override	0
apc.lazy_classes	0
apc.lazy_functions	0
apc.max_file_size	20M
apc.mmap_file_mask	
apc.num_files_hint	1000
apc.preload_path	
apc.report_autofilter	0
apc.rfc1867	0
apc.rfc1867_freq	0
apc.rfc1867_name	APC_UPLOAD_PROGRESS
apc.rfc1867_prefix	upload_
apc.rfc1867_ttl	3600
apc.shm_segments	1
apc.shm_size	128
apc.stat	1
apc.stat_ctime	0
apc.ttl	0
apc.use_request_time	1
apc.user_entries_hint	4096
apc.user_ttl	0
apc.write_lock	1


apc.ini чуть отличается, но и как в этом топике написано, также uptime 0 minutes
extension=apc.so
apc.enabled=1
apc.shm_size=128
apc.max_file_size=20M
  • dba
  • 0
avatar
Обновил apc до 3.1.13, но Uptime 0 minutes так и остался:
General Cache Information
APC Version	3.1.13
PHP Version	5.3.5-1ubuntu7.11
APC Host	site.ru (site-1111) (11.111.111.111)
Server Software	Apache/2.2.17 (Ubuntu)
Shared Memory	1 Segment(s) with 128.0 MBytes
(mmap memory, pthread mutex Locks locking)
Start Time	2013/10/27 13:38:06
Uptime	0 minutes
File Upload Support	1
File Cache Information
Cached Files	1 (448.5 KBytes)
Hits	1
Misses	1
Request Rate (hits, misses)	2.00 cache requests/second
Hit Rate	1.00 cache requests/second
Miss Rate	1.00 cache requests/second
Insert Rate	1.00 cache requests/second
Cache full count	0
User Cache Information
Cached Variables	0 ( 0.0 Bytes)
Hits	0
Misses	0
Request Rate (hits, misses)	0.00 cache requests/second
Hit Rate	0.00 cache requests/second
Miss Rate	0.00 cache requests/second
Insert Rate	0.00 cache requests/second
Cache full count	0
Runtime Settings
apc.cache_by_default	1
apc.canonicalize	1
apc.coredump_unmap	0
apc.enable_cli	0
apc.enabled	1
apc.file_md5	0
apc.file_update_protection	2
apc.filters	
apc.gc_ttl	3600
apc.include_once_override	0
apc.lazy_classes	0
apc.lazy_functions	0
apc.max_file_size	20M
apc.mmap_file_mask	
apc.num_files_hint	1000
apc.preload_path	
apc.report_autofilter	0
apc.rfc1867	0
apc.rfc1867_freq	0
apc.rfc1867_name	APC_UPLOAD_PROGRESS
apc.rfc1867_prefix	upload_
apc.rfc1867_ttl	3600
apc.serializer	default
apc.shm_segments	1
apc.shm_size	128M
apc.slam_defense	1
apc.stat	1
apc.stat_ctime	0
apc.ttl	0
apc.use_request_time	1
apc.user_entries_hint	4096
apc.user_ttl	0
apc.write_lock	1
avatar
сделал в apc.ini
extension=apc.so
apc.enabled="1"
apc.shm_segments="1"
;commenting this out allows you to set it in each fastcgi process
;apc.shm_size="30"
apc.num_files_hint="1024"
apc.ttl="7200"
apc.user_ttl="7200"
apc.gc_ttl="3600"
apc.cache_by_default="1"
;apc.filters=""
apc.mmap_file_mask="/tmp/apcphp5.XXXXXX"
apc.slam_defense="0"
apc.file_update_protection="2"
apc.enable_cli="0"
apc.max_file_size="1M"
apc.stat="1"
apc.write_lock="1"
apc.report_autofilter="0"
apc.include_once_override="0"
apc.rfc1867="0"
apc.rfc1867_prefix="upload_"
apc.rfc1867_name="APC_UPLOAD_PROGRESS"
apc.rfc1867_freq="0"
apc.localcache="0"
apc.localcache.size="512"
apc.coredump_unmap="0"


При этом в APC INFO:
General Cache Information
APC Version	3.1.13
PHP Version	5.3.5-1ubuntu7.11
APC Host	site.ru (site-1111) (11.111.111.111)
Server Software	Apache/2.2.17 (Ubuntu)
Shared Memory	1 Segment(s) with 32.0 MBytes
(mmap memory, pthread mutex Locks locking)
Start Time	2013/10/27 14:00:56
Uptime	0 minutes
File Upload Support	1
File Cache Information
Cached Files	1 (448.5 KBytes)
Hits	1
Misses	1
Request Rate (hits, misses)	2.00 cache requests/second
Hit Rate	1.00 cache requests/second
Miss Rate	1.00 cache requests/second
Insert Rate	1.00 cache requests/second
Cache full count	0
User Cache Information
Cached Variables	0 ( 0.0 Bytes)
Hits	0
Misses	0
Request Rate (hits, misses)	0.00 cache requests/second
Hit Rate	0.00 cache requests/second
Miss Rate	0.00 cache requests/second
Insert Rate	0.00 cache requests/second
Cache full count	0
Runtime Settings
apc.cache_by_default	1
apc.canonicalize	1
apc.coredump_unmap	0
apc.enable_cli	0
apc.enabled	1
apc.file_md5	0
apc.file_update_protection	2
apc.filters	
apc.gc_ttl	3600
apc.include_once_override	0
apc.lazy_classes	0
apc.lazy_functions	0
apc.max_file_size	1M
apc.mmap_file_mask	/tmp/apcphp5.NpNAoT
apc.num_files_hint	1024
apc.preload_path	
apc.report_autofilter	0
apc.rfc1867	0
apc.rfc1867_freq	0
apc.rfc1867_name	APC_UPLOAD_PROGRESS
apc.rfc1867_prefix	upload_
apc.rfc1867_ttl	3600
apc.serializer	default
apc.shm_segments	1
apc.shm_size	32M
apc.slam_defense	0
apc.stat	1
apc.stat_ctime	0
apc.ttl	7200
apc.use_request_time	1
apc.user_entries_hint	4096
apc.user_ttl	7200
apc.write_lock	1


видно, что apc.mmap_file_mask каждый раз меняется при refresh data:

Runtime Settings
apc.cache_by_default	1
apc.canonicalize	1
apc.coredump_unmap	0
apc.enable_cli	0
apc.enabled	1
apc.file_md5	0
apc.file_update_protection	2
apc.filters	
apc.gc_ttl	3600
apc.include_once_override	0
apc.lazy_classes	0
apc.lazy_functions	0
apc.max_file_size	1M
apc.mmap_file_mask	/tmp/apcphp5.BbVVSB
apc.num_files_hint	1024
apc.preload_path	
apc.report_autofilter	0
apc.rfc1867	0
apc.rfc1867_freq	0
apc.rfc1867_name	APC_UPLOAD_PROGRESS
apc.rfc1867_prefix	upload_
apc.rfc1867_ttl	3600
apc.serializer	default
apc.shm_segments	1
apc.shm_size	32M
apc.slam_defense	0
apc.stat	1
apc.stat_ctime	0
apc.ttl	7200
apc.use_request_time	1
apc.user_entries_hint	4096
apc.user_ttl	7200
apc.write_lock	1
avatar
Без понятия. У меня тоже APC 3.1.13 сейчас, и apc.php показывает uptime соответсвующий последнему рестарту php-fpm. Без идей что это значит у вас.
avatar
Подскажите а какое php-расширение в случае с установленным по данному мануалу memcached использовать, Memcache и memcached? Поскольку существует 2 php-расширения для работы с memcached хочется знать что использовать лучше на LS, вопрос скорее к автору топика.
avatar
На самом деле — без разницы. Я использую php5-memcache ( что кстати ясно из Главы VI ). php5-memcached я не тестировал, но работать, думаю, будет не хуже.
avatar
хай!

настроил по твоей инструкции мем кеш

у меня дебиан 6.0

все вроде ок прошло

когда меняю в конфиге значиние мемкеш включен на тру:

/**
* Настройка memcached
*/
$config['memcache']['servers'][0]['host'] = 'unix:///var/run/memcached.socket';
$config['memcache']['servers'][0]['port'] = '0';
/**
* Настройки кеширования
*/
// Устанавливаем настройки кеширования
$config['sys']['cache']['use'] = false; // использовать кеширование или нет
$config['sys']['cache']['type'] = 'memory'; // тип кеширования: file, xcache и memory. memory использует мемкеш, xcache — использует XCache
$config['sys']['cache']['prefix'] = 'opensoft'; // произвольный префикс кэша, должен быть уникальным для каждого сайта

сайт кидает ошибку:

Fatal error: Uncaught exception 'Zend_Cache_Exception' with message 'The memcache extension must be loaded for using this backend !' in /var/www/admin/www/site/engine/lib/external/DklabCache/Zend/Cache.php:141 Stack trace: #0 /var/www/admin/www/site/engine/lib/external/DklabCache/Zend/Cache/Backend/Memcached.php(97): Zend_Cache::throwException('The memcache ex...') #1 /var/www/admin/www/site/engine/lib/external/DklabCache/Cache/Backend/MemcachedMultiload.php(26): Zend_Cache_Backend_Memcached->__construct(Array) #2 /var/www/admin/www/site/engine/modules/cache/Cache.class.php(158): Dklab_Cache_Backend_MemcachedMultiload->__construct(Array) #3 /var/www/admin/www/site/engine/classes/Engine.class.php(320): ModuleCache->Init() #4 /var/www/admin/www/site/engine/classes/Engine.class.php(384): Engine->InitModule(Object(ModuleCache)) #5 /var/www/admin/www/site/engine/classes/Engine.class.php(40 in /var/www/admin/www/site/engine/lib/external/DklabCache/Zend/Cache.php on line 141
avatar
Вопрос. Извините, немного оффтопом. На моём сервере используется Debian 6..., собственно вы его везде и упоминаете, но возникла необходимость использовать php 5.4. Хостер говорит о том, что для использования этой версии php необходим апгрейд Debian до 7 версии иначе нормальная работа php не гарантируется. На ваш взгляд и опыт возможна ли работа php 5.4 или выше на Debian 6? И нормально ли живёт LS на такой конфигурации?
avatar
Легко. Взяли собрали свежий php и всё.
avatar
LS нормально живёт на на 5.4 и выше? Переписывать не придётся?
avatar
нормально LS живет, обновились на debian6 + php5.4 пару недель назад.

Хостер говорит о том, что для использования этой версии php необходим апгрейд Debian до 7 версии иначе нормальная работа php не гарантируется

Лукавит хостер. php 5.4 есть собранный под шестой дебиан, и он есть в репозиториях dotdeb (правда не в основной ветке, но и не в бетах-тестах, вполне стабилен, но вынесен отдельно).

Вот с php 5.5 да, уже могут быть сложности — насколько я знаю, официально squeeze не поддерживается (хотя при желании запустить можно), и рекомендуется апгрейд до debian 7.
avatar
Спасибо.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.