Как подружить php7.0-memcached с phpBBex?

Board index phpBBex 2.x Мастерская

Description: Только готовые решения! Статьи, заметки, моды и другие полезности для phpBBex 2.x и phpBB 3.1.x.
Moderator: Поддержка

Post #1by Sferg » 19.11.2016, 17:43

Здравствуйте. Имеется связка Nginx + PHP 7 + MariaDB 10. Подскажите, пожалуйста, как подружить php7.0-memcached с phpBBex?
Ранее, на PHP 5, использовалось memcached + php5-memcache и всё работало. В PHP 7 есть только php7.0-memcached.

Последовательность действий:
1. aptitude install memcached php7.0-memcached
2. В файл config.php прописываю:

Code: Select all
$acm_type = 'memcache';
@define('PHPBB_ACM_MEMCACHE_HOST', 'localhost');
@define('PHPBB_ACM_MEMCACHE_PORT', 11211);
@define('PHPBB_ACM_MEMCACHE_COMPRESS', false);

3. Открываю страницу форума и получаю ошибку:
Image

P.S. Вывод netstat -tulpan | grep ":11211"
Code: Select all
tcp        0      0 127.0.0.1:11211         0.0.0.0:*               LISTEN      9589/memcached
udp        0      0 127.0.0.1:11211         0.0.0.0:*                           9589/memcached

Умеет ли вообще phpBBex работать с memcached? Или только с memcache?
Debian 8.6 "Jessie", kernel 3.16.39-1+deb8u1 x86_64
Intel Atom N2800, 6Gb DDR3-1333, GMA3650, 120Gb SSD + 640Gb HDD + 500 Gb HDD (USB)
Sferg
Topic author, Бывалый
Reputation: 12
With us: 4 yaers 2 months

Post #2by Sumanai » 19.11.2016, 17:47

Нет, не умеет. Можно попытаться самому сделать драйвер, по пути \phpbb\cache\driver\memcache.php скопировать в memcached.php и внести несколько правок.
Использование поиска продлевает жизнь.
Это форум поддержки форка phpBBex. Поддержка по phpBB осуществляется в других местах.
Sumanai M
Гуру
Avatar
Reputation: 1589
With us: 4 yaers 7 months

Post #3by Sferg » 19.11.2016, 18:06

Sumanai wrote:и внести несколько правок.
Каких, если не секрет? Самое примитивное, что я сделал - это во всём коде заменил memcache\MEMCACHE на memcached\MEMCACHED. Но это ничего не дало (что, полагаю, и логично).

Есть ли вообще смысл заморачиваться с мемкэшем? Или эффективнее будет перемонтировать ../forum/cache в tmpfs?
Debian 8.6 "Jessie", kernel 3.16.39-1+deb8u1 x86_64
Intel Atom N2800, 6Gb DDR3-1333, GMA3650, 120Gb SSD + 640Gb HDD + 500 Gb HDD (USB)
Sferg
Topic author, Бывалый
Reputation: 12
With us: 4 yaers 2 months

Post #4by Sumanai » 19.11.2016, 18:10

Что-то похожее сделал, правда не уверен, что оно правильно работает.
Файл во вложении, вместо
Code: Select all
$acm_type = 'memcache';
Нужно использовать
Code: Select all
$acm_type = 'phpbb\\cache\\driver\\memcached';
Sferg wrote:Есть ли вообще смысл заморачиваться с мемкэшем?
Нужно тестировать, на разных конфигурациях эффект может быть разным.

Added after 3 minutes 20 seconds:
И не забудьте почистить кеш, на всякий случай напоминаю.
Attachments
memcached.zip
(1.04 KiB) Downloaded 52 times
Использование поиска продлевает жизнь.
Это форум поддержки форка phpBBex. Поддержка по phpBB осуществляется в других местах.
Sumanai M
Гуру
Avatar
Reputation: 1589
With us: 4 yaers 7 months

Post #5by Sferg » 19.11.2016, 20:16

Sumanai, положил файл memcached.php в ../forum/phpbb/cache/driver/. Заменил в ../forum/config.php строчку:

Code: Select all
$acm_type = 'phpbb\\cache\\driver\\memcached';

И очистил кэш. Страница форума открывается без ошибок. Но смущает то, что в ../forum/cache появилось всего лишь 2 файла.

Вывод команды ls -A1:
Code: Select all
autoload_0374ec857381230fa83049643ce3cdee.php
container_0374ec857381230fa83049643ce3cdee.php

Если не ошибаюсь, в ../forum/cache должны, после первого же обновления страницы форума, появляться файлы data_*.php и tpl_*.php. Но появилось всего 2 вышеуказанных файла.

P.S. Есть ли способ проконтролировать правильность работы драйвера?
P.P.S. Указание без полного пути в $acm_type = 'memcached'; тоже без ошибки обрабатывается.
Debian 8.6 "Jessie", kernel 3.16.39-1+deb8u1 x86_64
Intel Atom N2800, 6Gb DDR3-1333, GMA3650, 120Gb SSD + 640Gb HDD + 500 Gb HDD (USB)
Sferg
Topic author, Бывалый
Reputation: 12
With us: 4 yaers 2 months

Post #6by Sumanai » 19.11.2016, 20:56

Sferg wrote:Но смущает то, что в ../forum/cache появилось всего лишь 2 файла
Это нормально.
Sferg wrote:появляться файлы data_*.php
Они в мемкеше.
Sferg wrote:tpl_*.php.
Шаблоны обрабатываются твигом, и находятся в подкаталоге twig.
Sferg wrote:P.S. Есть ли способ проконтролировать правильность работы драйвера?
Установить какой-нибудь менеджер мемкеша и посмотреть, что там лежит.
Sferg wrote:P.P.S. Указание без полного пути в $acm_type = 'memcached'; тоже без ошибки обрабатывается.
Это устаревшая запись, может перестать работать в новых версиях.

И как по скорости? Есть ли смысл включать этот драйвер в дистрибутив, после доработки?
Использование поиска продлевает жизнь.
Это форум поддержки форка phpBBex. Поддержка по phpBB осуществляется в других местах.
Sumanai M
Гуру
Avatar
Reputation: 1589
With us: 4 yaers 7 months

Post #7by Sferg » 19.11.2016, 21:23

Sumanai wrote:Установить какой-нибудь менеджер мемкеша и посмотреть, что там лежит.

Ну да, там что-то появляется. Вывод команды nc 127.0.0.1 11211, затем stats items:

Code: Select all
STAT items:1:number 3
STAT items:1:age 93
STAT items:1:evicted 0
STAT items:1:evicted_nonzero 0
STAT items:1:evicted_time 0
STAT items:1:outofmemory 0
STAT items:1:tailrepairs 0
STAT items:1:reclaimed 10
STAT items:1:expired_unfetched 4
STAT items:1:evicted_unfetched 0
STAT items:1:crawler_reclaimed 0
STAT items:1:lrutail_reflocked 0
STAT items:2:number 2
STAT items:2:age 93
STAT items:2:evicted 0
STAT items:2:evicted_nonzero 0
STAT items:2:evicted_time 0
STAT items:2:outofmemory 0
STAT items:2:tailrepairs 0
STAT items:2:reclaimed 5
STAT items:2:expired_unfetched 2
STAT items:2:evicted_unfetched 0
STAT items:2:crawler_reclaimed 0
STAT items:2:lrutail_reflocked 0
STAT items:3:number 5
STAT items:3:age 93
STAT items:3:evicted 0
STAT items:3:evicted_nonzero 0
STAT items:3:evicted_time 0
STAT items:3:outofmemory 0
STAT items:3:tailrepairs 0
STAT items:3:reclaimed 20
STAT items:3:expired_unfetched 20
STAT items:3:evicted_unfetched 0
STAT items:3:crawler_reclaimed 0
STAT items:3:lrutail_reflocked 0
STAT items:4:number 1
STAT items:4:age 93
STAT items:4:evicted 0
STAT items:4:evicted_nonzero 0
STAT items:4:evicted_time 0
STAT items:4:outofmemory 0
STAT items:4:tailrepairs 0
STAT items:4:reclaimed 0
STAT items:4:expired_unfetched 0
STAT items:4:evicted_unfetched 0
STAT items:4:crawler_reclaimed 0
STAT items:4:lrutail_reflocked 0
STAT items:6:number 2
STAT items:6:age 93
STAT items:6:evicted 0
STAT items:6:evicted_nonzero 0
STAT items:6:evicted_time 0
STAT items:6:outofmemory 0
STAT items:6:tailrepairs 0
STAT items:6:reclaimed 5
STAT items:6:expired_unfetched 2
STAT items:6:evicted_unfetched 0
STAT items:6:crawler_reclaimed 0
STAT items:6:lrutail_reflocked 0
STAT items:7:number 1
STAT items:7:age 93
STAT items:7:evicted 0
STAT items:7:evicted_nonzero 0
STAT items:7:evicted_time 0
STAT items:7:outofmemory 0
STAT items:7:tailrepairs 0
STAT items:7:reclaimed 0
STAT items:7:expired_unfetched 0
STAT items:7:evicted_unfetched 0
STAT items:7:crawler_reclaimed 0
STAT items:7:lrutail_reflocked 0
STAT items:16:number 1
STAT items:16:age 93
STAT items:16:evicted 0
STAT items:16:evicted_nonzero 0
STAT items:16:evicted_time 0
STAT items:16:outofmemory 0
STAT items:16:tailrepairs 0
STAT items:16:reclaimed 0
STAT items:16:expired_unfetched 0
STAT items:16:evicted_unfetched 0
STAT items:16:crawler_reclaimed 0
STAT items:16:lrutail_reflocked 0
STAT items:21:number 1
STAT items:21:age 93
STAT items:21:evicted 0
STAT items:21:evicted_nonzero 0
STAT items:21:evicted_time 0
STAT items:21:outofmemory 0
STAT items:21:tailrepairs 0
STAT items:21:reclaimed 0
STAT items:21:expired_unfetched 0
STAT items:21:evicted_unfetched 0
STAT items:21:crawler_reclaimed 0
STAT items:21:lrutail_reflocked 0
END

Sumanai wrote:Это устаревшая запись, может перестать работать в новых версиях.
Почему же устаревшая? На мой взгляд проще указывать название драйвера, чем полный путь к нему.

Sumanai wrote:И как по скорости? Есть ли смысл включать этот драйвер в дистрибутив, после доработки?
Ну, наверняка кому-то из энтузиастов данный драйвер может пригодиться. Что же касается скорости, то:

Минимальное время генерации главной страницы при $acm_type = 'memcached':
Time: 0.033s | Queries: 12 | Peak Memory Usage: 1.81 МБ

Минимальное время генерации главной страницы при $acm_type = 'file':
Time: 0.029s | Queries: 12 | Peak Memory Usage: 1.81 МБ

Таким образом, разницы в скорости практически нет.
Debian 8.6 "Jessie", kernel 3.16.39-1+deb8u1 x86_64
Intel Atom N2800, 6Gb DDR3-1333, GMA3650, 120Gb SSD + 640Gb HDD + 500 Gb HDD (USB)
Sferg
Topic author, Бывалый
Reputation: 12
With us: 4 yaers 2 months

Post #8by Sumanai » 19.11.2016, 21:28

Sferg wrote:Почему же устаревшая?
Спроси разрабов phpBB.
Sferg wrote:Таким образом, разницы в скорости практически нет.
Я вижу замедление. Это под нагрузкой?
Использование поиска продлевает жизнь.
Это форум поддержки форка phpBBex. Поддержка по phpBB осуществляется в других местах.
Sumanai M
Гуру
Avatar
Reputation: 1589
With us: 4 yaers 7 months

Post #9by Sferg » 19.11.2016, 21:31

Sumanai wrote:Я вижу замедление. Это под нагрузкой?
Нет, без нагрузки. На тестовом форуме я один.

P.S. Если ../forum/cache перемонтировать в tmpfs, то разницы в скорости по сравнению с ext4 не наблюдается.
Debian 8.6 "Jessie", kernel 3.16.39-1+deb8u1 x86_64
Intel Atom N2800, 6Gb DDR3-1333, GMA3650, 120Gb SSD + 640Gb HDD + 500 Gb HDD (USB)
Sferg
Topic author, Бывалый
Reputation: 12
With us: 4 yaers 2 months

Post #10by Sumanai » 19.11.2016, 22:22

На тестовом не релевантно. Интересно как под загрузкой. Разницы нет потому что всё закешировалось в ОП, но при недостатке ОП ситуация может быть иной.
Использование поиска продлевает жизнь.
Это форум поддержки форка phpBBex. Поддержка по phpBB осуществляется в других местах.
Sumanai M
Гуру
Avatar
Reputation: 1589
With us: 4 yaers 7 months


Return to Мастерская