1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Ускоряем XenForo: включаем кэширование

Тема в разделе "Советы, руководства и видео-уроки", создана пользователем FractalizeR, 12.10.2010.

Загрузка
  1. sabas

    sabas Местный

    Регистрация:
    18.10.10
    Сообщения:
    22
    Симпатии:
    8
    Скажите пожалуйста , если на главной такие показатели - Время: 0,0238 сек. Память: 3,411 МБ Запросов к БД: 7 , это нормально ??
     
  2. GAM

    GAM Местный

    Регистрация:
    28.04.11
    Сообщения:
    326
    Симпатии:
    159
    Версия XF:
    1.1.3
    Вполне =)
     
  3. BLEF

    BLEF Местный

    Регистрация:
    01.02.12
    Сообщения:
    466
    Симпатии:
    56
    У меня xcache, после изменения настроек config
    Код:
    $config['cache'] = array(
    'enabled' => true,
    'frontend' => 'Core',
    'frontendOptions' => array(
    'caching' => true,
    'automatic_serialization' => false,
    'cache_id_prefix' => 'myforum_',
    'lifetime' => 18000
    ),
    'backend' => 'Xcache',
    'backendOptions' => array(),
    );
    На форуме ошибка:
    An unexpected error occurred. Please try again later.
    Куда копать?
     
  4. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    Ну, для начала — в логи ошибок.
     
  5. BLEF

    BLEF Местный

    Регистрация:
    01.02.12
    Сообщения:
    466
    Симпатии:
    56
    ErrorException: is_dir(): open_basedir restriction in effect. File(/var/www/user/data/www/***.ru/internal_data/page_cache) is not within the allowed path(s): (/var/www/***/data:.) - library/Zend/Cache/Backend/File.php:153
     
  6. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    open_basedir restriction in effect - гугль поможет.
     
  7. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    А папка internal_data/page_cache создана и права на запись в нее выставлены?
     
  8. BLEF

    BLEF Местный

    Регистрация:
    01.02.12
    Сообщения:
    466
    Симпатии:
    56
    Да, пользователя в пути неправильно написал.
    Такое ощущение будто не работает:
    Page load time: 3.34s
    Total page size: 220KB
    Total number of requests: 28
    Так же было до установки.
    Ещё момент, хостер пишет:
    т.е. nginx не работает, насколько это критично?
     
  9. BLEF

    BLEF Местный

    Регистрация:
    01.02.12
    Сообщения:
    466
    Симпатии:
    56
    до: Время: 0,0743 сек. Память: 5,924 МБ Запросов к БД: 12
    после: Время: 0,0817 сек. Память: 6,082 МБ Запросов к БД: 10
    Разницы не ощущаю, где смотреть?

    Правда до включения, на сайте gtmetrix.com были такие цифры:
    Page load time: 3.21s
    Total page size: 220KB
    Total number of requests: 28

    после:
    Page load time: 0.38s
    Total page size: 146B
    Total number of requests: 1
     
  10. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    "До" и "после" - это что именно? Включение xcache? Если да, то должна быть разница во времени раз в 5-10. Памяти при этом может тратиться больше. Если разницы нет, а то и замедление происходит, то есть большая вероятность того, что не правильно настроен xcache. Его настройка обсуждалась уже (не помню в какой теме). Суть в том, что при невозможности размещения в кеше каких-то файлов, будет тратиться лишнее время на попытки кеширования опкода, что только снизит производительность.

    Включение кеша в конфиге ксена не влияет на кеширование опкода. В ксене просто могут кешироваться переменные (обычно массивы), включая сессии пользователей. Это дает прирост производительности, уменьшая обращение к базе данных в том числе. Прирост производительности при включении кеширования в ксене не так велик, как кеширование опкода, кстати. Т.е. разница в 5-10 раз - это кеш опкода. Затем еще процентов на 10-30 может подрасти производительность за счет кеширования сессий пользователей. Ну и кеширование переменных дает еще процентов 5-10.

    По кешированию переменных могу ошибаться. Да и кеширование переменных дает очень разный результат на мало загруженных, средне загруженных и сильно загруженных сайтах. Т.е. много зависит от количества пользователей онлайн. При 10-20 пользователях разница может быть нулевая, а вот при тысячах разница может быть и на порядки.
     
    Yoskaldyr и BLEF нравится это.
  11. Naga

    Naga Местный

    Регистрация:
    03.01.12
    Сообщения:
    82
    Симпатии:
    2
    Не понял как включить xcache.

    сейчас показатели:
    Время:0,3581 сек. Память: 8,744 МБ Запросов к БД: 43

    Добавляю в config.php
    Код:
    $config['cache'] = array(
    'enabled' => true,
    'cacheSessions' => true,
    'frontend' => 'Core',
    'frontendOptions' => array(
    'caching' => true,
    'automatic_serialization' => true,
    'cache_id_prefix' => 'xf_',
    'lifetime' => 18000
    ),
    'backend' => 'Xcache',
    'backendOptions' => array(),
    );
    после этого
    Время:0,4081 сек. Память: 9,075 МБ Запросов к БД: 38
    + еще в админке включил "Загружать шаблоны из файлов"
    может, я что-то забыл еще включить в админке или в конфиг добавить?

    Настройки xcache
    [​IMG]
     
  12. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Сократите xcache.count до 4. Затем не обязательно загружать шаблоны из файлов. Они замечательно грузятся и из базы. Загрузка шаблонов хороша в том случае, когда требуется править их через тот же ftp, к примеру.
    Ну а эффективность Вашего кеша нужно смотреть через админку xcache. Там наглядно показывается занятость слотов, а также возможные проблемы с кешированием.
    Это то, что касается кеширования op-кода и от конфигурации ксена не зависит.
    Ну а кеширование переменных как раз включается в конфиге ксена. Опять таки, увидеть работу кешера можно через админку кешера. Поэтому ставьте админку (в документации к Xcache это есть). Ну и там уже оценивайте его работу.

    Ну а судя по времени генерации страницы, у Вас кеширование опкода не работает. Потому что время генерации страницы должно уменьшиться примерно в 5-10 раз. Кеширование переменных также сокращает время генерации страницы.
    Естественно, что для правильно оценки нужно несколько раз страницу перегрузить (обычно клавишей F5 в браузере). Так как первая загрузка страницы всегда будет при включенном кешировании даже медленнее, чем без него. А вот вторая и последующие рефреши покажут, насколько эффективно сокращает время генерации кеширование.
     
    Naga нравится это.
  13. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    Это основная проблема медленной работы - смотрите какой плагин добавляет этот ужас. 38 запросов - это катастрофически много и xcache не поможет, т.к. в таком случае - узкое место база, вернее количество запросов к ней.
    Насчет включения шаблонов из файлов - если используете какой-либо опкод кеш (в том числе xcache), то рекомендуется его включать.
    Насчет админки хкеша - все правильно сказали - в ней можно посмотреть что и как кешируется.
    Включение кеширования убирает 2-5 запросов на каждой странице и это хороший процент когда запросов до 10, но когда запросов больше 40 - разницу трудно будет заметить :)
     
    Naga нравится это.
  14. Naga

    Naga Местный

    Регистрация:
    03.01.12
    Сообщения:
    82
    Симпатии:
    2
    после включения - запросов становится от 37 до 40 :)

    админку я поставить не могу, т.к. хостинг :)
    --- добавлено : Nov 20, 2012 8:33 PM ---
    так же, при включении кэша - выкидывает с админки :) через минуту, может раньше
    --- добавлено : Nov 20, 2012 8:56 PM ---
    методом тыка нашел что шалил модуль ModeratorView

    сейчас без включенного кэша: Время:0,2493 сек. Память: 8,604 МБ Запросов к БД: 16
    с включенным: Время:0,2513 сек.Память: 8,860 МБ Запросов к БД:12

    по сути уменьшились только запросы к бд.

    я понял что всё можно посмотреть через админку, но доступа туда нет :(
     
  15. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    если у Вас шаред хостинг и есть xcache, то бегом отключайте его, т.к. кеш общий для всех пользователей (по крайней мере в 1.3)
    Т.е. любой другой владелец сайта на этом же физическом сервере может получить доступ к сессиям и другим данным, что хранятся в кеше.
     
    Naga нравится это.
  16. Naga

    Naga Местный

    Регистрация:
    03.01.12
    Сообщения:
    82
    Симпатии:
    2
    жаль, пошел отключать.
     
  17. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Хм. Если при включенном (судя по всему, он включен хостером, а управление им от пользователя не предусмотрено) кешере опкода генерация страницы доходит до 0.3 секунд, я бы такого хостера поменял... Ибо это жесткий оверселлинг.
     
  18. Naga

    Naga Местный

    Регистрация:
    03.01.12
    Сообщения:
    82
    Симпатии:
    2
    толку от кэширования, еслиYoskaldyr сказал что на шареде это беда, включение xcache :)
     
  19. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    О том и речь. Если хостер уже кеширует опкод, да при этом страница генерируется, мягко говоря, не быстро, то налицо хреновый хостинг. Включение кеширования на ксене в данном случае вообще будет являться опасной процедурой, так как потенциально кто угодно на этом же сервере хостера может получить доступ к закешированным данным ксена. А там могут оказаться в том числе и данные сессии. В итоге имеем огромную дыру безопасности.

    Еще раз замечу, что включение кеширования в ксене относится лишь к кешированию переменных. Кеширование опкода (файлов php) ксеном никак не регулируется и либо оно есть, либо его нет.
     
  20. Naga

    Naga Местный

    Регистрация:
    03.01.12
    Сообщения:
    82
    Симпатии:
    2
    а если memcache включить? у него такая же беда на шареде?
     

Поделиться этой страницей