Вы не зашли.
Страницы 1
(FYI) А знаете ли вы, что:
Многие новые плагины поддерживают кеширования своего вывода.
Данный механизм позволяет значительно уменьшить нагрузку на сервер БД (в некоторых случаях кол-во SQL запросов может быть уменьшено вдвое).
Как это работает:
1. Плагин проверяет наличие в кеше данных, которые лежат в кеше не более периода обновления кеша (конфигурационный параметр). Если данные найдены - плагин выводит данные из кеша и завершает свою работу.
2. Плагин выполняет SQL запрос, формирует ответный текст, выводит данные и помещает их в кеш.
Как это настроить:
Все настройки производятся в разделе Настройки кеширования плагина.
1. Настроить период обновления кеша - для сайтов, обновляемых нечасто (менее 100 статей в сутки) достаточно выставить следующие параметры:
archive/calendar - 10 минут ( 600 секунд )
popular - 5 минут ( 300 секунд)
при таких настройках пользователи вообще не заметят что используется кеширование
2. Включить кеширование выставив значение Да в параметре использовать кеширование данных
Не в сети
То есть сам движок ngcms работает через mysql постоянно, а плугины позволяют часто не обращаться к базе за счёт кэша. По сути нагрузка будет на сервер с плагинами, как, если бы ngcms работал без плугинов, ведь отдаётся статика, а не динамика. Значит есть запас, чтобы наворотить много плугинов без сильного ущерба скорости. Значит нужно следить за плугинами и тестировать чётко, чтобы не получилось как напишу ниже.
Читал, как плугины некоторые у dle создавали большую нагрузку на сервер. Но не понятно, как тогда так было, если у них был кэш, видно плугины были плохо тестированы. У ngcms и 2z из-за плохо тестированых плугинов стала бы создаваться большая нагрузка. Остаётся только надеяться на хорошую систему кэширования в плугинах.
Не в сети
У ngcms и 2z из-за плохо тестированых плугинов стала бы создаваться большая нагрузка.
o_O
Не в сети
А ты удивишься если узнаешль что у ngcms при включенном кешировании не тормозит систему...
xmpp://ngcms@conf.ngcms.ru
Настройка клиента для подключения к конференции
Не в сети
Просто я удивился, что кеш может как-то неправильно работать...
Кеш это видь что:
1. Ставиться время, например 60 секунд.
2. С интервалом 60 секунд делается запрос к БД, и кеш обновляется.
3. Итог: получаем 1 запрос за 60 сек, вместо 60 запросов за 60 секунд.
Не в сети
torg,... читал,... много думал,... ничего не понял.
Что именно ты хотел сказать?
Что двиг сам по себе не использует кеш?
Да, так и есть. То, что использует сам двиг - не очень-то поддаётся кешированию, хотя есть ещё фронт работ.
То, что надо тестировать плагины?
Ну так этим занимаются их авторы и пользователи.
То, что бывают плагины, создающие значительную нагрузку?
И тут нет ничего странного - если плагин должен сделать что-то сложное и перелопатить уйму данных, то иногда без высокой нагрузки не обойтись. А уж администратор сайта сам для себя решит нужен ли ему такой плагин или нет.
Не в сети
Может туплю после бессонной ночи, но из фака ни черта не понял. Может кто-нибудь расскажет популярно как добавить кеширование? Какой код нужно добавить в плагин? Или где почитать об этом хотя бы?
Бог умер © Ницше
Ницше умер © Бог
Не в сети
Может туплю после бессонной ночи, но из фака ни черта не понял. Может кто-нибудь расскажет популярно как добавить кеширование?
Зайти в плагин и включить)))
Какой код нужно добавить в плагин? Или где почитать об этом хотя бы?
http://wiki.ngcms.ru/index.php/Базовые_ … и_плагинов "Использование кеширования в плагине"
xmpp://ngcms@conf.ngcms.ru
Настройка клиента для подключения к конференции
Не в сети
ROZARD, спасибо
Кеширование в плагине состоит из двух частей: - Одна из которых заносит из переменной данные которые нужно скешировать:
if (extra_get_param('test','cache')) {
// Запись
cacheStoreFile($cacheFileName, $output, 'test');
}
//Кодирум в md5
$cacheFileName = md5('test'.$config['theme'].$config['default_lang'].$year.$month).'.txt';
- Другая вынемает берет из кеша закешированные данные:
// Чтение (в параметрах плагин хранит: cache - флаг сообщающий надо ли использовать кеш, cacheExpire - время жизни кеша в секундах
if (extra_get_param('test','cache')) {
$cacheData = cacheRetrieveFile($cacheFileName, extra_get_param('test','cacheExpire'), 'test');
if ($cacheData != false){
// We got data from cache. Return it and stop
$template['vars']['test'] = $cacheData;
return;
}
}
Сохранить данные в файл-кеш: $fname - имя файла
$data - содержание
$plugin - ID плагина
function cacheStoreFile($fname, $data, $plugin = ) Возвращает: true - при успехе
false - при неуспехе Получить данные из кеш-файла с учётом времени жизни: $fname - имя файла
$expire - время жизни данных в секундах
$plugin - ID плагина
function cacheRetrieveFile($fname, $expire, $plugin = ) Возвращает: false - если данных нет или устарели данные если они есть и не устарели
Бог умер © Ницше
Ницше умер © Бог
Не в сети
Насколько я понимаю: extra_get_param скоро будет depricated. Вроде как лучше использовать pluginGetVariable. Это по тексту топиков.
То что касается кеша. Вещь обалденная. Снижает довольно хорошо нагрузку, но есть несколько вопросов/предложений к разработчику.
1). Предлагаю изменить пути хранения кеша, вместо /engine/cache/{plugin_name}, предлагаю хранить в /engine/cache/{template_name}/{lang}/{plugin_name}. Согласитесь, довольно логично, и будет неплохо для будующей расширяемости, учитывая уже заложенные в систему возможности многоязычности и многошаблонности.
2). Тот механизм что есть, устраивает на все 100%. Однако, не исключено, что в кеше будут храниться данные, которые неиспользуются очень давно. Значит надо как-то его чистить. Либо скриптами, тем кто на VPS либо для крона что-то написать, тем кто на вирт. хостинге.
Во всем остальном, кеш это весчь. Причем очень шустрая на NG.
Изменено vitaliy1978 (2010-11-24 18:57:27)
Не в сети
1. Не согласен.
Плагин сам решает что кешировать, далеко не обязательно, что закешированные данные как-то зависят от шаблона или языка пользователя (можно кешировать сырые данные, а потом на лету собирать шаблон). Кроме того, закешированные данные могут зависить от массы других критериев (к примеру, от статуса пользователя - залогинен или нет).
2. Да, есть такое дело. Очистка кеша пока не предусмотрена, но скоро будет.
Не в сети
1. Не согласен.
Плагин сам решает что кешировать, далеко не обязательно, что закешированные данные как-то зависят от шаблона или языка пользователя (можно кешировать сырые данные, а потом на лету собирать шаблон). Кроме того, закешированные данные могут зависить от массы других критериев (к примеру, от статуса пользователя - залогинен или нет).
В принципе наверное правы. Согласен.
Не в сети
Страницы 1