Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[MODDB] Cache Guests Pages

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Kot
phpBB 2.0.0
Сообщения: 207
Стаж: 15 лет
Благодарил (а): 17 раз
Поблагодарили: 34 раза
Контактная информация:

[MODDB] Cache Guests Pages

Сообщение Kot »

Модификация: Кэширование страниц для гостей и ботов (Cache Guests & Bots pages)
Автор: Kot

Описание: Содержимое страниц, открываемых гостями и ботами, сохраняется в кэше, и возвращается из кэша при повторном обращении. Использование этого модуля позволяет значительно уменьшить нагрузку на сервер со стороны гостей и ботов, однако следует учесть, что размер кэша заметно вырастет пропорционально гостевой активности.

Особенности:
  • Время генерации страниц, открываемых гостями и ботами, улучшено в 10-50 раз;
  • Кэшируемые страницы: index.php, viewforum.php, viewtopic.php, portal.php (для Board3 Portal);
  • Легко применить практически к любой странице в составе phpBB;
  • Поддержка ETag/If-None-Match HTTP заголовков (дополнительное кэширование на уровне HTTP протокола);
  • Сквозное кэширование: если кто-либо изменяет содержимое топика, соответствующие кэш-файлы топика и форумов будут удалены.
Внимание! Оценить реальное время генерации закэшированной страницы можно по цифрам в самом низу страницы, слева. То, что у вас пишется на обычном месте debug-информации -- это время, затраченное на первоначальное создание этой страницы, без кэширования. Обратите внимание на скриншот ниже -- там время генерации указано в двух местах. Обновлять страницу для проверки нужно Ctrl+F5, иначе можете не увидеть результат, если страница будет получена из кэша браузера (сервер вернёт 304 Not Modified статус).

Версия: 1.1.2

Известные баги:
  • Пока не обнаружено. Добавляйте, буду признателен.
Планы на новую версию:
  • Пока никаких
Скрин:

Изображение

Изображение

Демонстрационный форум: http://scooterclub.by/nforum

Загрузить: cache_guests_pages-1.1.2.zip
Последний раз редактировалось Kot 20.05.2013 18:38, всего редактировалось 17 раз.
Аватара пользователя
miba
phpBB 2.0.4
Сообщения: 432
Стаж: 17 лет 2 месяца
Благодарил (а): 86 раз
Поблагодарили: 7 раз
Контактная информация:

Re: [Beta] Cache Guests Pages

Сообщение miba »

открыл, время генерации - 0,38... всё равно не мало
Аватара пользователя
Balamut
Former team member
Сообщения: 2213
Стаж: 19 лет
Откуда: {postrow.POSTER_FROM}
Поблагодарили: 146 раз
Контактная информация:

Re: [Beta] Cache Guests Pages

Сообщение Balamut »

miba, там два времени - время изначальной генерации страницы (которое тоже кешируется), и слева снизу время отдачи из кеша. Если второго времени нет - значит страницы в кеше небыло, обновите страницу.
//
// That's all, Folks!
// -------------------------------------------------
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11234
Стаж: 14 лет 2 месяца
Откуда: fotovideoforum.ru
Благодарил (а): 1782 раза
Поблагодарили: 1340 раз
Контактная информация:

Re: [Beta] Cache Guests Pages

Сообщение Пчелкин »

0,012 !!! Олично!!! Вечером пробую установить на свой тяжелый...
Аватара пользователя
bumbr
phpBB 1.4.4
Сообщения: 129
Стаж: 12 лет 9 месяцев
Откуда: Беларусь
Благодарил (а): 44 раза
Поблагодарили: 24 раза
Контактная информация:

Re: [Beta] Cache Guests Pages

Сообщение bumbr »

Kot
А поясните как этот кэш будет очищаться. Как влияет общая очистка кэша и кэша шаблонов. Например, если я что-то поменял в файле шаблона — чем чистить кэш (достаточно ли удалить один закэшированный шаблон?) и что при этом будет происходить, т.е. если я меняю файл шаблона viewtopic_body.html, то почти весь кэш надо пересоздавать?
Аватара пользователя
Kot
phpBB 2.0.0
Сообщения: 207
Стаж: 15 лет
Благодарил (а): 17 раз
Поблагодарили: 34 раза
Контактная информация:

Re: [Beta] Cache Guests Pages

Сообщение Kot »

По умолчанию устаревший кэш в phpBB чистится раз в 2 часа (стандартные настройки). Удаляются те файлы, "срок годности" которых уже истёк. Очистка производится очень быстро, я наблюдал за работой этого скрипта несколько дней -- независимо от размеров кэша время отрабатывания скрипта не превышало 1 секунды.

Общая очистка кэша чистит вообще всё и глобально. Как шаблоны, так и сохранённое содержимое страниц.
bumbr писал(а):Например, если я что-то поменял в файле шаблона — чем чистить кэш (достаточно ли удалить один закэшированный шаблон?)
Нет, недостаточно. Потому что в этом случае новые страницы будут создаваться правильно, а вот закэшированные выдаваться именно в том виде, в каком они были сохранены. Так что желательно в случае внесения любых глобальных изменений полностью очищать кэш.
bumbr писал(а):что при этом будет происходить, т.е. если я меняю файл шаблона viewtopic_body.html, то почти весь кэш надо пересоздавать?
После очистки, кэш шаблонов пересоздаётся автоматически, при первом же обращении к странице.
Аватара пользователя
bumbr
phpBB 1.4.4
Сообщения: 129
Стаж: 12 лет 9 месяцев
Откуда: Беларусь
Благодарил (а): 44 раза
Поблагодарили: 24 раза
Контактная информация:

Re: [Beta] Cache Guests Pages

Сообщение bumbr »

Kot
Ну и не менее важнецкий вопрос — как прикинуть количество необходимого пространства на хосте? Понятно, что цифра приблизительная, хотя бы с вероятностью 30%, т.к. надо от чего-то отталкиваться.

Добавлено спустя 12 минут 2 секунды:
В инструкции по по установке обычно есть файл modx.prosilver.en.xsl, в архиве его нет и у меня видимо из-за этого что-то не открывается install_mod.xml.
Аватара пользователя
Kot
phpBB 2.0.0
Сообщения: 207
Стаж: 15 лет
Благодарил (а): 17 раз
Поблагодарили: 34 раза
Контактная информация:

Re: [Beta] Cache Guests Pages

Сообщение Kot »

Пока недостаточно статистических данных. Но хочу сказать, что всё зависит от двух цифр: от активности гостей/ботов, и от указанного времени кэширования.

У меня на форуме в среднем за сутки 5000 просмотров. 80% этого трафика -- гости и боты. Время кэша задано по умолчанию -- 12 часов. Размер кэша пока ещё не превышал 250 мегабайт.

Кстати, можно будет поднапрячься, и к stable release добавить в админку примитивный калькулятор оценки предполагаемого размера кэша. Но для этого нужно больше статистических данных -- у кого сколько просмотров страниц (я использую статистику Google Analytics), какой процент гостевого трафика, какой при этом размер кэша. Вычислив зависимости, можно будет рисовать калькулятор.

Ещё одна вещь, на которой задумываюсь, но пока не вижу достаточной необходимости: сжатие содержимого перед укладкой в кэш. Если честно, я вначале думал, что перехват буфера от ob_start("ob_gzhandler") вернёт уже сжатое содержимое, но нет... Придётся дополнительно мудрить для сжатия. Вот только стоит ли? Основная цель мода -- снизить нагрузку на сервер, в частности на процессорные мощности. Постоянная упаковка-распаковка эту нагрузку только увеличит (хотя и не настолько, как если вообще не использовать этот мод). В любом случае дисковое пространство сейчас стоит очень дёшево.

Добавлено спустя 4 минуты 13 секунд:
bumbr писал(а):В инструкции по по установке обычно есть файл modx.prosilver.en.xsl, в архиве его нет и у меня видимо из-за этого что-то не открывается install_mod.xml.
Можно на этом моменте подробнее? У меня автомод установил всё без проблем, прямо из zip-архива. Так ли нужен этот файл, и если да -- куда его подкладывать? И зачем? :)

Я просто никогда раньше не писал моды для phpBB, многого не знаю, буду признателен за советы и подсказки.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: [Beta] Cache Guests Pages

Сообщение Татьяна5 »

Kot, скачать файл modx.prosilver.en.xsl и положить его в архив рядом с install_mod.xml
Это таблица стилей, для ручной установки
Аватара пользователя
Kot
phpBB 2.0.0
Сообщения: 207
Стаж: 15 лет
Благодарил (а): 17 раз
Поблагодарили: 34 раза
Контактная информация:

Re: [Beta] Cache Guests Pages

Сообщение Kot »

Кстати, пока не забыл, напишу тут для самого себя хотелку: поиграться с заголовком IF-MODIFIED-SINCE и ответом 304 Not Modified. Вряд ли особо повлияет на производительность, но всяко грамотнее будет реализована работа с http протоколом.

Хмм... Насколько я вижу, такое уже реализовано в file.php... Вот только почему в таком случае согласно статистике AwStats у меня за этот месяц не было ни одного 304-ответа?... В недоумении. Надо будет посмотреть внимательнее на скрипт file.php -- не исключено, что там тоже можно будет что-то прооптимизировать, недаром ведь это самый часто выполняемый скрипт на сервере...
Аватара пользователя
bumbr
phpBB 1.4.4
Сообщения: 129
Стаж: 12 лет 9 месяцев
Откуда: Беларусь
Благодарил (а): 44 раза
Поблагодарили: 24 раза
Контактная информация:

Re: [Beta] Cache Guests Pages

Сообщение bumbr »

Kot
Мод установил, пока работает, отпишусь потом что да как.
Дело в том, что у меня последнюю неделю идёт перебор лимита по CPU Usage и Entry Processes, хотя статистика показывает что посещаемость не увеличилась. Хостер, вероятно, желает перевести форум на VPS, но т.к. для меня ВПС=тёмный лес, то буду юзать Ваш мод до победы.
Если я могу предоставить какие-либо отчёты или статистику, например из cPanel, то напишите.
А вообще класс
yabaldey.jpg
Добавлено спустя 20 минут 6 секунд:
Предложение у меня есть. В Админку добать информацию о размере кэша, в тот же модуль который добавляется, если это не будет напрягать ресурсы сервера.
Аватара пользователя
Kot
phpBB 2.0.0
Сообщения: 207
Стаж: 15 лет
Благодарил (а): 17 раз
Поблагодарили: 34 раза
Контактная информация:

Re: [Beta] Cache Guests Pages

Сообщение Kot »

bumbr
дополнительно рекомендую ещё попробовать мод HTTP Guest Cache от нашего англоязычного товарища, мы с ним независимо начали разрабатывать наши моды чуть ли не в одно время. :) Там принцип несколько другой, используется http кэширование страниц. И если где-то на пути между трафиком будет стоять кэширующий прокси, то многие пользовательские запросы до вашего сайта даже не дойдут.

Правда, два наших мода пока не могут работать одновременно (мы с ним оба меняем http заголовки, в итоге происходит накладка). Но уже начали работать в этом направлении. Не исключено даже, что в итоге два мода будут объединены в один (хотя лично мне этого не хотелось бы -- предпочитаю держать разработку под своим контролем).
bumbr писал(а):Дело в том, что у меня последнюю неделю идёт перебор лимита по CPU Usage и Entry Processes, хотя статистика показывает что посещаемость не увеличилась. Хостер, вероятно, желает перевести форум на VPS
Вы там писали, что смотрите статистику по Google Analytics? Для оценки нагрузки лучше смотреть через какие-нибудь программы, оценивающие логи апача (AwStats, к примеру). Нагрузка на сервер могла возрасти по причине набега спам-ботов, к примеру. Эти ребята долбят себе страницы с капчей, а гугловский счётчик посещений и не думают накручивать, подлецы... :(
bumbr писал(а):Если я могу предоставить какие-либо отчёты или статистику, например из cPanel, то напишите.
Что мне пока нужно, это вот примерно такая информация:
Kot писал(а):у кого сколько просмотров страниц (я использую статистику Google Analytics), какой процент гостевого трафика, какой при этом размер кэша.
Аватара пользователя
Balamut
Former team member
Сообщения: 2213
Стаж: 19 лет
Откуда: {postrow.POSTER_FROM}
Поблагодарили: 146 раз
Контактная информация:

Re: [Beta] Cache Guests Pages

Сообщение Balamut »

bumbr, 146 запросов к базе???
//
// That's all, Folks!
// -------------------------------------------------
Аватара пользователя
Kot
phpBB 2.0.0
Сообщения: 207
Стаж: 15 лет
Благодарил (а): 17 раз
Поблагодарили: 34 раза
Контактная информация:

Re: [Beta] Cache Guests Pages

Сообщение Kot »

bumbr писал(а):Предложение у меня есть. В Админку добать информацию о размере кэша, в тот же модуль который добавляется, если это не будет напрягать ресурсы сервера.
Прикольно, можно будет и сделать. Жаль только, что в стандартных средствах phpBB этого нет. Хотя сделать не сложно.
Аватара пользователя
bumbr
phpBB 1.4.4
Сообщения: 129
Стаж: 12 лет 9 месяцев
Откуда: Беларусь
Благодарил (а): 44 раза
Поблагодарили: 24 раза
Контактная информация:

Re: [Beta] Cache Guests Pages

Сообщение bumbr »

Smayliks писал(а):146 запросов к базе???
Это в теме где комментарии к постам включены. 15 постов, до 15 комментариев к посту, ну там аватары, смайлы и прочее.

Kot
Нашел я Awstats, правда со статистикой по дням там что-то туго, не могу разобраться. Мод я поставил в 16-00, надо в любом случае подсобирать статистики, хоть за пару дней.
Так у меня в среднем немного: уникальных 1100-1400, визитов 1700-2000, ну и просмотров где-то 13к-15к за сутки. (это Яндекс метрика и Гуугл Аналитик) Ну и когда все проснуться по Гугловским данным в ражиме реального времени от 15 до 30 человек одновременно.
Блин пока писал форум сдох — превышен лимит Entry Processes, у меня стоит 20 чего-то там, как-то жиденько выглядит, может мне недосыпали чего в пакет =)

Добавлено спустя 44 секунды:
Кстати, забыл, кэш проверял всё время — не превысил 100Мб.
Закрыто

Вернуться в «Бета-версии модов для phpBB 3.0.x»