Full Cache. Простое Frontend кеширование без Nginx
22
Цель. Снизить нагрузку при большом потоке незарегистрированных пользователей.
Причины нагрузки.
1) Даже при включении бэкенд кеша любого вида(memcache, file, xcache) движок все же ест память, так как структуру данных он выстраивает в любом случае. При большом количестве плагинов растет количество классов и экземпляров этих классов, которые загружаются в память. В данном случае использование бэкенд кеша увеличивает скорость работы за счет кеширования результатов запросов в базу данных. Но размер потребляемой памяти остается тот же. Например, у меня страница топика ела 19 Мб, а список — 30мБ. При этом частично помогает, например, использование ссылок на объекты с помощью & при переборе, а не их копий. Но все же это крошки.
2) Даже при полном кеше БД все же выполняются несколько запросов, таких как получение данных о сессии или update таблицы просмотров. Под нагрузкой и при использовании InnoDb базы «update запрос» может очень сильно тормозить.
Ресурсы и методы
Собственно смысл прост. Он состоит в том, чтобы один раз генерировать страницу, а потом отдавать ее сразу.
Проверять на существование и отдавать кеш надо будет перед запуском движка, что разгрузит потребляемую память.
Читать дальше
Причины нагрузки.
1) Даже при включении бэкенд кеша любого вида(memcache, file, xcache) движок все же ест память, так как структуру данных он выстраивает в любом случае. При большом количестве плагинов растет количество классов и экземпляров этих классов, которые загружаются в память. В данном случае использование бэкенд кеша увеличивает скорость работы за счет кеширования результатов запросов в базу данных. Но размер потребляемой памяти остается тот же. Например, у меня страница топика ела 19 Мб, а список — 30мБ. При этом частично помогает, например, использование ссылок на объекты с помощью & при переборе, а не их копий. Но все же это крошки.
2) Даже при полном кеше БД все же выполняются несколько запросов, таких как получение данных о сессии или update таблицы просмотров. Под нагрузкой и при использовании InnoDb базы «update запрос» может очень сильно тормозить.
Ресурсы и методы
Собственно смысл прост. Он состоит в том, чтобы один раз генерировать страницу, а потом отдавать ее сразу.
Проверять на существование и отдавать кеш надо будет перед запуском движка, что разгрузит потребляемую память.
Читать дальше
Кеширование и склейка css/js
4
Как заставить ls чтобы он склеивал файлы css/js от плагинов в один общий?
В кинфиге стоит
В связи с чем не происходит слияние в один файл?
И почему при сжатии ксс плывет верстка?
В кинфиге стоит
$config['compress']['css']['merge'] = true;но всеровно в коде сайта отбражается
$config['compress']['css']['use'] = false;
$config['compress']['js']['merge'] = true;
$config['compress']['js']['use'] = true;
<link rel="stylesheet" type="text/css" href="http://localhost/plugins/popupinfo/templates/skin/default/css/style.css?UPD=1.1" />
<script type="text/javascript" src="http://localhost/plugins/popupinfo/templates/skin/default/js/init.js"></script>В связи с чем не происходит слияние в один файл?
И почему при сжатии ксс плывет верстка?
(Решено) ls5.1 Странность с кешированием. В коде шаблона "хак" есть, а в кеш не попадает.
2
Сам хак в comment_tree.tpl
Настройки кеширования.
После редактирования шаблона при помощи aceAdminPanel очищал кеш. Но «хака» в коде шаблона так и не появилось.
В чём может быть дело?
{if $oUserCurrent}
<script>
setInterval("ls.comments.load({$iTargetId},'{$sTargetType}')", 120000);
</script>
<div class="update" id="update" style="{if $aPagingCmt and $aPagingCmt.iCountPage>1}display:none;{/if}">
<div class="update-comments" id="update-comments" onclick="ls.comments.load({$iTargetId},'{$sTargetType}'); return false;"></div>
<div class="new-comments" id="new_comments_counter" style="display: none;" onclick="ls.comments.goToNextComment();"></div>
<input type="hidden" id="comment_last_id" value="{$iMaxIdComment}" />
<input type="hidden" id="comment_use_paging" value="{if $aPagingCmt and $aPagingCmt.iCountPage>1}1{/if}" />
</div>
{/if}Настройки кеширования.
// Устанавливаем настройки кеширования
$config['sys']['cache']['use'] = true; // использовать кеширование или нет
$config['sys']['cache']['type'] = 'file'; // тип кеширования: file и memory. memory использует мемкеш
$config['sys']['cache']['dir'] = '___path.root.server___/tmp/'; // каталог для файлового кеша, также используется для временных картинок. По умолчанию подставляем каталог для хранения сессий
$config['sys']['cache']['prefix'] = 'livestreet_cache'; // префикс кеширования, чтоб можно было на одной машине держать несколько сайтов с общим кешевым хранилищем
$config['sys']['cache']['directory_level'] = 1; // уровень вложенности директорий файлового кеша
$config['sys']['cache']['solid'] = true; // Настройка использования раздельного и монолитного кеша для отдельных операцийПосле редактирования шаблона при помощи aceAdminPanel очищал кеш. Но «хака» в коде шаблона так и не появилось.
В чём может быть дело?
Долгая загрузка страницы при включённом кешировании
4
Здравствуйте!
Перевёл сайт на движок LiveStreet. Версия 0.5.1.
Включаю кеш. Пробую добавить комментарий. Пост приходит с большой задержкой. При этом от количества «подвисших процессов» ложится сервер. Ошибок нет. БД летает.
Посоветуйте, что делать?
Сайт:
Пользователей более 5000.
Комментарий более 100000.
Сервер:
cpu DualCore 2.4GHz E2220
memory 2Gb (DDRII)
hdd 320Gb (Hitachi HDT725032VLA360 SATAII 16M.)
РНР: 5.2.5
Config.php
$config['sys']['cache']['use'] = true; // использовать кеширование или нет
$config['sys']['cache']['type'] = 'file'; // тип кеширования: file и memory. memory использует мемкеш
$config['sys']['cache']['dir'] = '___path.root.server___/tmp/'; // каталог для файлового кеша, также используется для временных картинок. По умолчанию подставляем каталог для хранения сессий
$config['sys']['cache']['prefix'] = 'livestreet_cache'; // префикс кеширования, чтоб можно было на одной машине держать несколько сайтов с общим кешевым хранилищем
$config['sys']['cache']['directory_level'] = 1; // уровень вложенности директорий файлового кеша
$config['sys']['cache']['solid'] = true; // Настройка использования раздельного и монолитного кеша для отдельных операций
Лога профилирования процесса добавления комментария
20.03.2012 11:18 45,759843 0.91040200 1332235078 0.67024500 1332235124 1 0 full_time
20.03.2012 11:18 44,384112 0.24135200 1332235080 0.62546400 1332235124 954 1 ExecAction blog
20.03.2012 11:18 36,263979 0.28254900 1332235084 0.54652800 1332235120 1663 954 callModule Comment->AddComment()
20.03.2012 11:18 34,319749 0.63899400 1332235084 0.95874300 1332235118 1699 1663 callModule Topic->increaseTopicCountComment()
20.03.2012 11:18 34,111548 0.83469400 1332235084 0.94624200 1332235118 1706 1699 callModule Cache->Clean()
20.03.2012 11:18 3,113062 0.24375700 1332235080 0.35681900 1332235083 973 954 callModule Topic->GetTopicById()
Перевёл сайт на движок LiveStreet. Версия 0.5.1.
Включаю кеш. Пробую добавить комментарий. Пост приходит с большой задержкой. При этом от количества «подвисших процессов» ложится сервер. Ошибок нет. БД летает.
Посоветуйте, что делать?
Сайт:
Пользователей более 5000.
Комментарий более 100000.
Сервер:
cpu DualCore 2.4GHz E2220
memory 2Gb (DDRII)
hdd 320Gb (Hitachi HDT725032VLA360 SATAII 16M.)
РНР: 5.2.5
Config.php
$config['sys']['cache']['use'] = true; // использовать кеширование или нет
$config['sys']['cache']['type'] = 'file'; // тип кеширования: file и memory. memory использует мемкеш
$config['sys']['cache']['dir'] = '___path.root.server___/tmp/'; // каталог для файлового кеша, также используется для временных картинок. По умолчанию подставляем каталог для хранения сессий
$config['sys']['cache']['prefix'] = 'livestreet_cache'; // префикс кеширования, чтоб можно было на одной машине держать несколько сайтов с общим кешевым хранилищем
$config['sys']['cache']['directory_level'] = 1; // уровень вложенности директорий файлового кеша
$config['sys']['cache']['solid'] = true; // Настройка использования раздельного и монолитного кеша для отдельных операций
Лога профилирования процесса добавления комментария
20.03.2012 11:18 45,759843 0.91040200 1332235078 0.67024500 1332235124 1 0 full_time
20.03.2012 11:18 44,384112 0.24135200 1332235080 0.62546400 1332235124 954 1 ExecAction blog
20.03.2012 11:18 36,263979 0.28254900 1332235084 0.54652800 1332235120 1663 954 callModule Comment->AddComment()
20.03.2012 11:18 34,319749 0.63899400 1332235084 0.95874300 1332235118 1699 1663 callModule Topic->increaseTopicCountComment()
20.03.2012 11:18 34,111548 0.83469400 1332235084 0.94624200 1332235118 1706 1699 callModule Cache->Clean()
20.03.2012 11:18 3,113062 0.24375700 1332235080 0.35681900 1332235083 973 954 callModule Topic->GetTopicById()
Кеширование sql запросов
2
Добрый день!
Пиши каталог для одного сайта. На настоящий момент, чтобы вывести рубрикатор выполняется 255 sql-запросов. Подскажите пожалуйста как можно эти запросы закешировать? Сейчас мне выдаются вот такие результаты
MySql
query: 255
time: 0,606
Cache
query: 0
— set: 0
— get: 0
time: 0
Записи извлекаю вот так
Пиши каталог для одного сайта. На настоящий момент, чтобы вывести рубрикатор выполняется 255 sql-запросов. Подскажите пожалуйста как можно эти запросы закешировать? Сейчас мне выдаются вот такие результаты
MySql
query: 255
time: 0,606
Cache
query: 0
— set: 0
— get: 0
time: 0
Записи извлекаю вот так
$sql = "SELECT *, LOWER(category_title) as category_title_lower
FROM {$this->dbprefix}category
WHERE category_parent_id = '{$iCatID}'
ORDER BY category_title";
$aRows = $this->oDb->select($sql);
Кеширование или как много хорошего в этом слове
23
Думаю не для многих разработчиков есть секретом что в ЛС встроен механизм кеширования информации, полученной от БД. Но мои частые наблюдения сообщают о другом — я не могу вспомнить сторонние плагины, которые использовали бы кеширование в своей работе. Да что лукавить — я сам его обходил стороной часто. Поэтому этот топик призван пролить луч света на использование кеширования в ЛС в своих плагинах, т.к. это довольно просто.
Читать дальше
Livestreet на облачном хостинге ISPServer
2
Оказывается, не все облачные хостинги одинаково полезны.
Опыт установки моего второго сайта www.relaxrostov.ru на Livestreet на cloudhosting от ISPServer и нарекания от клиента, показали, что в настройках Livestreet такой параметр как кеширование запросов лучше снимать. Ибо, тормоза с загрузкой страницы (загрузка страницы: от 20 сек и больше, против 4-6 сек. для другого сайта на другом движке на этом же хостинге) при обращении к MySQL были страшные, хотя хост пинговался нормально, ресурсы cpu/mem не превышались.
Читать дальше
Опыт установки моего второго сайта www.relaxrostov.ru на Livestreet на cloudhosting от ISPServer и нарекания от клиента, показали, что в настройках Livestreet такой параметр как кеширование запросов лучше снимать. Ибо, тормоза с загрузкой страницы (загрузка страницы: от 20 сек и больше, против 4-6 сек. для другого сайта на другом движке на этом же хостинге) при обращении к MySQL были страшные, хотя хост пинговался нормально, ресурсы cpu/mem не превышались.
$config['sys']['cache']['use'] = false; // использовать кеширование или нетЧитать дальше
- +1
- 11 февраля 2011, 13:23
- MaximTusken
- 7
Как заставить закешированный CSS-файл переименоваться?
1
Допускаю, что вопрос тупой, но ответа пока мне никто не дал.
Всё знают, что в ЛС, независимо от шаблона и количества плагинов, генерируется некий собирательный CSS-файл, который потом и подключается к каждой странице:
Если кратко, то задача сделать так, чтобы этот файл поменял название и стало что-то вроде:
Но сколько я ни очищал кэш, этот файл перегенерируется с тем же именем. А Chrome, например, как закеширует однажды CSS, так и потом всё время его использует. Обновишь страницу — он вроде показывает новую версию, но проходит пять минут — и опять всё по-старому. Нужно, чтобы имя CSS-файла поменялось (альтернативный вариант — добавить что-то вроде ?v=2 после названия файла, но как это сделать?).
Вопрос: как мне переименовать закешированный CSS, чтобы все браузеры поняли, что файл изменился?
UPD: Кое-что есть здесь, но это не решает проблему (файл пересоздаётся с прежним именем).
Всё знают, что в ЛС, независимо от шаблона и количества плагинов, генерируется некий собирательный CSS-файл, который потом и подключается к каждой странице:
<link rel='stylesheet' type='text/css' href='http://www.site.ru/templates/cache/new/5e30fbee88c09e7e63ef7d3833309448.css' />Если кратко, то задача сделать так, чтобы этот файл поменял название и стало что-то вроде:
<link rel='stylesheet' type='text/css' href='http://www.site.ru/templates/cache/new/38335e30fbee3094488c09e7e63ef7d8.css' />Но сколько я ни очищал кэш, этот файл перегенерируется с тем же именем. А Chrome, например, как закеширует однажды CSS, так и потом всё время его использует. Обновишь страницу — он вроде показывает новую версию, но проходит пять минут — и опять всё по-старому. Нужно, чтобы имя CSS-файла поменялось (альтернативный вариант — добавить что-то вроде ?v=2 после названия файла, но как это сделать?).
Вопрос: как мне переименовать закешированный CSS, чтобы все браузеры поняли, что файл изменился?
UPD: Кое-что есть здесь, но это не решает проблему (файл пересоздаётся с прежним именем).
- -1
- 07 февраля 2011, 20:15
- TonyClifton
- 9
Как отключить кеширование?
5
Решил сделать шаблон под 0.4. И озадачился таким вопросом — кака выключить кеширование в движке?, ибо не отражаются внесенные изменения, а вручную чистить папку с кешем каждые 10 сек это просто глупо.
Проблема с авторизацией на дополнительном сайте на VPS
Прикрутил к аккаунту еще один сайт, настроил виртуалхосты, вроде все нормально, но на второй сайт не могу зайти под админом, пишет «что то вероятно не так...» пытаюсь зарегистрироваться под обычным юзером — в конце выдает «Системная ошибка, повторите позже». Второй сайт поставил с нуля, движок 0.3.1 и импортнул дефолтную базу. На VPS использую memcached. Чую что дело в кешировании, сессиях или куках, но не могу решить проблему. Папки tmp в конфигах в разных директориях указываю, но все равно что то путается. Помогите народ кто прикручивал к одному серверу несколько сайтов разобраться и решить проблему. Спасибо и с Наступившим всех!