Делаем работу форума на XenForo более быстрой, включив кэширование

SOUL

Создатель
Сообщения
7 920
Репутация
11 253
Баллы
266
Георгий Шевченко подсказал, как увеличить скорость форума.

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

Теперь о самой сути. Для включения кэширования открываем /library/config.php и добавляем
Код:
$config['cache']['enabled'] = true;
$config['cache']['cacheSessions'] = true;
$config['cache']['frontend'] = 'Core';
$config['cache']['frontendOptions'] = array(
'caching' => true,
'automatic_serialization' => true,
'lifetime' => 3600,
'cache_id_prefix' => 'xf_'
);
Сохраняем.
Затем нужно перейти ?options/list/performance
И поставить галочки на:
- Сжатие CSS
- Загружать шаблоны из файлов
- Библиотека jQuery - Хранится локально

Теперь наш форум работает заметно быстрее.

speed XenforoTest.jpg
 
Последнее редактирование:

X-Oleg

Местный
Сообщения
588
Репутация
628
Баллы
93
Необходимо понимать что это за кеширование и зачем оно нужно, постараюсь объяснить !

Итак, по хорошему на 70-80 % нагрузку снижает и ускоряет так называемый PHP OPCache...

Есть расширения для PHP, которые сохраняют компилированный байт код скриптов и повышает производительность скриптов.

Тем не менее, некоторые скрипты поддерживают своё кеширование, вот это кеширование примерно на 20-30 % может разгрузить сервер !

Если говорить про XenForo, то там используется Zend_Cache не просто класс для кеширования. Это целая концепция, которая состоит из фронтэнда, отвечающего за параметры кеширования, и бэкенда, отвечающего за хранение кеша. Так что вы не можете просто создать Zend_Cache, вам нужно воспользоваться фабрикой, предварительно подготовив параметры для фронтэнда и бэкэнда.

Zend_Cache поддерживает следующие беккенды:

1)File Back-End:
Код:
$config['cache']['backend'] = 'File';
2)APC Back-End:
Код:
$config['cache']['backend'] = 'Apc';
3)Memcached Back-End:
Код:
$config['cache']['backend'] = 'Memcached';
$config['cache']['backendOptions'] = array(
    'compression' => false,
    'servers' => array(
        array(
            // your memcached server IP /address
            'host' => 'localhost',
           
            // memcached port
            'port' => 11211,
        )
    )
);

4)X-Cashe Back-End:
Код:
$config['cache'] = array(
    'enabled' => true,
    'frontend' => 'Core',
    'frontendOptions' => array(
            'caching' => true,
            'automatic_serialization' => false,
            'cache_id_prefix' => 'you_prefix_',
            'lifetime' => 18000
    ),
    'backend' => 'Xcache',
    'backendOptions' => array(),
    'cacheSessions' => true
);

Еще раз:Frontend - Это что кешировать, Backend - Это как кешировать !


Поэтому правильный конфиг, это указание настроек как Frontend, так и Backend:

Пример:

Код:
$config['cache']['enabled'] = true;
$config['cache']['frontend'] = 'Core';
$config['cache']['frontendOptions']['cache_id_prefix'] = 'xf_';

$config['cache']['cacheSessions'] = true;
'automatic_serialization' => true;
'lifetime' => 3600;

$config['cache']['backend'] = 'Memcached';
$config['cache']['backendOptions'] = array(
    'compression' => false,
    'servers' => array(
        array(
            // your memcached server IP /address
            'host' => 'localhost',
           
            // memcached port
            'port' => 11211,
        )
    )
);
Настройки фронтенда:
Код:
$config['cache']['enabled'] = true;
$config['cache']['frontend'] = 'Core';
$config['cache']['frontendOptions']['cache_id_prefix'] = 'xf_';
$config['cache']['cacheSessions'] = true;
$config['cache']['frontendOptions']['cache_id_prefix'] = 'xf_'; - Перфикс, для безопасности и если много форумов, рекомендуется поменять на свой;

$config['cache']['cacheSessions'] = true; - Кеширование сессий.

А это уже беккенд, пример для Memcashe:
Код:
$config['cache']['backend'] = 'Memcached';
$config['cache']['backendOptions'] = array(
    'compression' => false,
    'servers' => array(
        array(
            // your memcached server IP /address
            'host' => 'localhost',
          
            // memcached port
            'port' => 11211,
        )
    )
);
 

X-Oleg

Местный
Сообщения
588
Репутация
628
Баллы
93
Такое кеширование может уменьшить число запросов к б/д и т.д., например если включить кеширование сессий - Это минус два запроса к базе... :)
 
  • Мне нравится
Реакции: SOUL

Vefhfhbyhiuk

Пользователь
Сообщения
4
Репутация
1
Баллы
3
влияет ли на нагрузку хостинга кеширование ?
 

alexbelby

Пользователь
Сообщения
6
Репутация
3
Баллы
3
На начальных этапах развития форума прирост производительности практически незаметный, но когда форум разрастается, кэширование - весьма существенная помощь
 

Лешшой

Местный
Сообщения
395
Репутация
212
Баллы
43
Сокращает несколько запросов к БД, Повышения производительности особой не заметил. Мб потому что форум маленький еще...
 

TOP-ic

Местный
Сообщения
241
Репутация
90
Баллы
28
А вот вопросик. После обновления форума, требуются повторные манипуляции с добавлением код? Или всё остается и новые файлы не затрагивают измененный config.php?
 

PaCTa

Проверенный
Сообщения
42
Репутация
21
Баллы
3
А вот вопросик. После обновления форума, требуются повторные манипуляции с добавлением код? Или всё остается и новые файлы не затрагивают измененный config.php?
Не затрагивают.
 

jazz511

Пользователь
Сообщения
2
Репутация
0
Баллы
1
Я правильно понимаю?! мне необходимо добавить такой код
Код:
$config['cache']['enabled'] = true;
$config['cache']['cacheSessions'] = true;
$config['cache']['frontend'] = 'Core';
$config['cache']['frontendOptions'] = array(
'caching' => true,
'automatic_serialization' => true,
'lifetime' => 3600,
'cache_id_prefix' => 'xf_'
);

$config['cache'] = array(
    'enabled' => true,
    'frontend' => 'Core',
    'frontendOptions' => array(
            'caching' => true,
            'automatic_serialization' => false,
            'cache_id_prefix' => 'xf_',
            'lifetime' => 18000
    ),
    'backend' => 'Xcache',
    'backendOptions' => array(),
    'cacheSessions' => true
);
 

serenykiyserg

Проверенный
Сообщения
234
Репутация
26
Баллы
28
Здесь

Пожалуйста, Войдите или Зарегистрируйтесь для просмотра скрытого текста.

Георгий Шевченко подсказал, как увеличить скорость форума.
Нету информации (((

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

SOUL

Создатель
Сообщения
7 920
Репутация
11 253
Баллы
266
Нету информации (((
Так в шапке темы всё написано, там указала ссылку на первоисточник.
На сегодняшний день все таки какой лучше способ использовать ?
Меня такие вопросы в тупик ставят.., на сегодняшний день есть огромное количество альтернативных способов?
 
Последнее редактирование:

serenykiyserg

Проверенный
Сообщения
234
Репутация
26
Баллы
28
Так в шапке темы всё написано, там указала ссылку на первоисточник.

Меня такие вопросы в тупик ставят.., на сегодняшний день есть огромное количество альтернативных способов?
Поэтому и сложно разобраться, что много способов. Как выбрать то ? Для меня они на одно лицо как китайцы и я не понимаю что лучше.
 

Lenchi

Местный
Сообщения
227
Репутация
263
Баллы
63
Для небольших проектов используем php56+opcache+memcached.
 
Сверху Снизу