Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Recommended Posts

Подскажите как сделать так, чтобы происходило кэширование страниц.

Вот например у меня есть движок Друпал, если там поставить кэш, то он все кэширует при первом посещении (не важно кем), а в последующем выдает уже хтмл страничку. То есть запросов к БД нет.

В ocstore v1.5.1.3 я столкнулся с такой проблемой, что даже если страница якобы кэширована и создался файл в system/cache, то она один фиг выдается очень медленно.

Я решил кешировать весь сайт с количеством товаров 2300.

Делаю все на денвере.

Запустил паука сатмаппера, чтобы он посетил каждую страницу и тем самым для каждой страницы создался кэш.

В итоге все ОЧЕНЬ долго грузилось, минут 40.

Загрузка процессора i7-2600 была на 60%, процесс mysqld.exe.

Прошло 40 минут.

В папке system/cache создалось всего 108 файлов

Как такое может быть?

Такое ощущение, что кэширование не работает.

А мне бы хотелось, чтобы странички очень быстро летали и кэшировалось все, кроме корзины.

Как сделать?

Надіслати
Поділитися на інших сайтах


Такую приблуду сделать можно... если диск безразмерный, если сэйл и дисконт бессрочный, если нет учета товарных остатков, если товары выставляются бессрочно и ещё ряд всяких если зависящих от конфигурации магазина.

Надіслати
Поділитися на інших сайтах

Такую приблуду сделать можно... если диск безразмерный, если сэйл и дисконт бессрочный, если нет учета товарных остатков, если товары выставляются бессрочно и ещё ряд всяких если зависящих от конфигурации магазина.

А сколько диска надо на 2300 товаров? Думаю около 200 мегабайт. Нормально, устроит.

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

Надіслати
Поділитися на інших сайтах


Кстати, свои испытания я проводил запуская сканирование в 10 потоков, то есть 10 человек в секунду заходят.

Вышло 2300 страниц за 40 минут.

Даже если за час, то это 2300*24=55200 просмотров в сутки.

И посещаемость около 10000 должна быть.

В общем, видимо я переборщил слегка, возможно не требуется ничего кэшировать, тем более на начальном этапе.

Надіслати
Поділитися на інших сайтах


В Opencart/ocStore не кешируются отрендеренные страницы. В кеш уходят только данные для рендеринга с временем жизни кеша 1 час.

Кстати то что у тебя в кеш упало 108 файлов говорит о том что либо твой паук не работает, либо накосячил в движке.

Объяснять как сделать эту байду - дольше чем написать её...

Удалил нафиг....

Как устанавливать написано в readme.

По коду написал комменты - так что дальше сам достраивай велосипед по своему желанию...

Страницы не кешируются если пользователь авторизовался или кинул товар в корзину.

Кроме этого не кешируются запросы POST, AJAX, HTTPS.

Возможно имеет смысл отключить кеширование запросов поиска, либо установить automaticCleaningFactor для удаления протухшего кеша.

  • +1 1
Надіслати
Поділитися на інших сайтах

Кстати то что у тебя в кеш упало 108 файлов говорит о том что либо твой паук не работает, либо накосячил в движке.

Спасибо, сейчас попробую.

Насчет количества файлов могу сказать, что во время того как прога работала - количество файлов в кеше доходило до 300 с лишним, а в итоге осталось только 108... в чем дело не понимаю)

Надіслати
Поділитися на інших сайтах


Насчет количества файлов могу сказать, что во время того как прога работала - количество файлов в кеше доходило до 300 с лишним, а в итоге осталось только 108... в чем дело не понимаю)

Время жизни кеша изменял?
Надіслати
Поділитися на інших сайтах

Время жизни кеша изменял?

Если это находится в коде, то не изменял.

Вот сейчас запускал снова сатмаппера, только в 2 потока... страницы гораздо быстрее грузились и файлов в кэше создалось 369

Надіслати
Поділитися на інших сайтах


В папке system/cache параллельно создается кэш... а какой из них выдается при загрузке через браузер я не знаю, видимо именно он.

В итоге скорость загрузки страницы не увеличилось.

Это значит что нужно отключить как-то стандартное кэширование?

Как его отключить?

Надіслати
Поділитися на інших сайтах


В папке system/cache - кешируются данные, в папке system/cache/static - кешируются отрендеренные страницы.

Скорость загрузки страниц увеличится на втором проходе.... при первом запросе страница формируется и кешируется, при последующих - отдаётся из кеша и движок магазина вообще не используется...

  • +1 1
Надіслати
Поділитися на інших сайтах

Не знаю что происходит.

На втором и третьем подходе скорость не увеличивается (в среднем 1-2 секунды). Пробую без авторизации с разных браузеров.

В админке в журнале ошибок выдало кучу сообщений такого типа

2012-01-21 18:20:08 - PHP Warning:  unlink(Z:homesite.ruwww/system/cache/cache.product.seopath.1327173608) [<a href='function.unlink'>function.unlink</a>]: Permission denied in Z:homesite.ruwwwsystemlibrarycache.php on line 50

и вот таких:

2012-01-21 18:18:54 - PHP Warning:  file_get_contents(Z:homesite.ruwww/system/cache/cache.product.seopath.1327173532) [<a href='function.file-get-contents'>function.file-get-contents</a>]: failed to open stream: No such file or directory in Z:homesite.ruwwwsystemlibrarycache.php on line 26

А еще я открыл поглядеть файлы кэша и в начале каждого присутствует надпись типа

-521694989<?xml version="1.0" encoding="UTF-8"?>

так и должно быть?

Что-то не работает.

Надіслати
Поділитися на інших сайтах


Не знаю что происходит.

На втором и третьем подходе скорость не увеличивается (в среднем 1-2 секунды). Пробую без авторизации с разных браузеров.

Значит хостинг тупой и ничего ты с ним не сделаеш... только потерять...

Если хочеш в этом убедиться - создай статичную HTML страницу и посмотри как она отдаётся.

В админке в журнале ошибок выдало кучу сообщений такого типа

2012-01-21 18:20:08 - PHP Warning:  unlink(Z:\home\site.ru\www/system/cache/cache.product.seopath.1327173608) [<a href='function.unlink'>function.unlink</a>]: Permission denied in Z:\home\site.ru\www\system\library\cache.php on line 50

и вот таких:

2012-01-21 18:18:54 - PHP Warning:  file_get_contents(Z:\home\site.ru\www/system/cache/cache.product.seopath.1327173532) [<a href='function.file-get-contents'>function.file-get-contents</a>]: failed to open stream: No such file or directory in Z:\home\site.ru\www\system\library\cache.php on line 26
Это ахтунги от стандартного кешера

А еще я открыл поглядеть файлы кэша и в начале каждого присутствует надпись типа

-521694989<?xml version="1.0" encoding="UTF-8"?>

так и должно быть?

Да, так и должно быть. Это метки времени по которым проверяется валидность кеша.

Что-то не работает.

Закинул на бесплатный хостинг, который тупой на отдачу до безобразия....

Но добавил вывод статистики что-бы было видно как фомируется страница.

В базе 1000 категорий до 15 уровней вложенности и 10000 товаров

Время жизни кеша поставил 60 секунд что-бы кеш быстрее протухал.

Что-бы покруче нагрузить сервак делаю поиск и вывожу 100 результатов

При первом запросе можеш открыть HTML сгенерённой страницы и посмотреть...

В конце будет статистика

<!--

Memory Real: 5 MB

Memory Peak: 4.682 MB

Memory Usage: 2.752 MB

Execution Time: 544.74 ms

-->

При последующих запросах - будет два блока статистики

<!--

Memory Real: 5 MB

Memory Peak: 4.682 MB

Memory Usage: 2.752 MB

Execution Time: 544.74 ms

-->

<!--

Cache Output

Memory Real: 1 MB

Memory Peak: 0.688 MB

Memory Usage: 0.337 MB

Execution Time: 2.71 ms

-->

Первый блок это статистика рендеринга страницы без кеша.

Второй блок показывает как выводилась страница из кеша.

Как видиш скорость выросла в 200 раз... т.е. страница готова к отдаче за 3 ms, а хостинг тупит почти 3 секунды прежде чем отдать страницу.

post-6876-0-35376900-1327173772_thumb.png

Можеш сам проверить... я тестил на этом URL http://opencart.site...ame=1&limit=100

  • +1 1
Надіслати
Поділитися на інших сайтах

К сожалению на ВДСке сайт стал загружаться еще медленнее (каждая страница грузится секунд 4-6), чем на денвере.

При этом никакого кэша в папке system/cache/static не создается.

Ошибок в журнале не регистрируется.

Записей вида:

<!--

Memory Real: 5 MB

Memory Peak: 4.682 MB

Memory Usage: 2.752 MB

Execution Time: 544.74 ms

-->

не формируется.

Возможно ли, что дело в том, что PHP как CGI? А не Апач.

Что делать в этом случае?

Надіслати
Поділитися на інших сайтах


Ну тогда в .htaccess убери строки

php_value auto_prepend_file ...
php_value auto_append_file ...

и в index.php добавь пару строк:

после строки

<?php
добавь

require('cache_start.php');

перед строкой

?>
добавь

require('cache_end.php');
  • +1 1
Надіслати
Поділитися на інших сайтах

Вставил!

Еще пришлось перед запуском кэша вставить

ini_set('default_charset', 'utf-8');

Но в итоге страница стала загружатсья не 4-6 секунд, а 15-20

Причем в папке system/cache/static создаются файлы.

Ошибок в журнале нет.

Записей вида:

<!--

Memory Real: 5 MB

Memory Peak: 4.682 MB

Memory Usage: 2.752 MB

Execution Time: 544.74 ms

-->

не формируется

Да что ж это такое-то, будет ли когда-нибудь лучше-то? :-D

Надіслати
Поділитися на інших сайтах


Мне кажется, что осталось совсем чуть-чуть и все заработает.

Как-будто бы осталась какая-то одна маленькая финтифлюшечка.

Надо теперь как-то подцепить этот кэш из папки system/cache/static :eek:

Кстати, не ясно из-за чего такая долгая загрузка, потому что пока загружается страница - можно открыть исходный код.

Видимо причина такой долгой загрузки в другом.

Сама страница загружается быстро, но показывается через 15-20 секунд.

Как такое может быть?

Надіслати
Поділитися на інших сайтах


Запустил сайтмаппера, чтобы он пробежался по всем страничкам и сайт вообще перестал открываться.

Загружается, загружается и не может загрузиться.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.