Вы не вошли.
Страницы 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/Базовые_ … и_плагинов "Использование кеширования в плагине" :P
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 17:57:27)
Вне форума
1. Не согласен.
Плагин сам решает что кешировать, далеко не обязательно, что закешированные данные как-то зависят от шаблона или языка пользователя (можно кешировать сырые данные, а потом на лету собирать шаблон). Кроме того, закешированные данные могут зависить от массы других критериев (к примеру, от статуса пользователя - залогинен или нет).
2. Да, есть такое дело. Очистка кеша пока не предусмотрена, но скоро будет.
Вне форума
1. Не согласен.
Плагин сам решает что кешировать, далеко не обязательно, что закешированные данные как-то зависят от шаблона или языка пользователя (можно кешировать сырые данные, а потом на лету собирать шаблон). Кроме того, закешированные данные могут зависить от массы других критериев (к примеру, от статуса пользователя - залогинен или нет).
В принципе наверное правы. Согласен.
Вне форума
Страницы 1
[ Сгенерировано за 0.017 сек, 7 запросов выполнено - Использовано памяти: 587.89 Кбайт (Пик: 624.89 Кбайт) ]