Как лучше работать с кешем?

9 октября 2015 в 0:23
Аватар пользователя Boozenok Boozenok 0 12

Есть магазин Drupal Commerce c атрибутами и аякс корзиной. Сейчас средняя посещаемость на сайте 10 т. и она будет расти. в каталоге (taxonomy/term/%) кнопки с формой "Купить" нет, есть только в нодах.
За несколько часов кеш форм растет до 2 ГБ, там уже хостинг начинает ругаться...
Поставила OptimizeDB, так кеш очищается по крону каждый час, но это явно не выход из ситуации. Думала вынести кеш в оперативную память используя Memcached, но сейчас хост дает только 510 МБ места, что особо мою проблему не решает (конечно хостинг поменяю, если это действительно поможет и если в этом реально есть смысл)

Так вот...хочу спросить у знающих людей:
1. Стоит ли смотреть в сторону Memcached или мне что-то подойдет больше?
2. Есть ли решение для аякс корзины с атрибутами по аналогии предложенным xandeadx.
3. По опыту что лучше использовать для кеширования Изображений? (они на сайте достаточно больших размеров, что уменьшает производительность)
4. Насколько вредным или безвредным является запуск крона каждый час (не учитывая того, что каждый час будет сайт немножко тормозить на протяжении какого-то времени)

Спасибо за отзывчивость

Комментарии

"Boozenok" wrote:
они на сайте достаточно больших размеров, что уменьшает производительность

откуда инфа? о какой производительности речь?

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

9 октября 2015 в 0:34

"sumerian" wrote:
откуда инфа? о какой производительности речь?

Большой размер изображений = увеличение время их отдачи. Они то кешируются Boost, но после очистки кеша все-равно пользователю потом заново создаются персеты. Вот и интересуюсь какие еще эффективные варианты есть.

"sumerian" wrote:
смотря что им делать.

очищать по времени cache_form Smile

9 октября 2015 в 0:45

memcached штука хорошая, но его надо уметь готовить
железо всегда должно быть с запасом, привлекайте сисадмина, возможно у вас конфиги не алло

9 октября 2015 в 2:23

"Boozenok" wrote:
кеш форм растет до 2 ГБ

Вам подойдет очистка кеша,либо доработка модуля корзины.
Зачем хранить бесполезный кеш корзины в memcасhe?
"Boozenok" wrote:
Насколько вредным или безвредным является запуск крона каждый ча

Иногда вредно если сервер слабый. Ведь он совершает множество операций.
Можно написать скрипт и запускать его системным кроном,будет меньше нагрузки,только один запрос.
Либо чистить кеш при нажатии на кнопку корзины, при определенных условиях,но это как то не друпально
"Boozenok" wrote:

Большой размер изображений = увеличение время их отдачи. Они то кешируются Boost, но после очистки кеша все-равно пользователю потом заново создаются персеты. Вот и интересуюсь какие еще эффективные варианты есть


https://www.drupal.org/project/imageinfo_cache

9 октября 2015 в 2:55

для начала настройте VDS и перенесите все на него
отличные VDS есть в Digital Ocean (говорят по-английски) и в Инфобокс (говорят по-русски, сервера в Питере)
у обоих дают нормально места (в инфобоксе так вообще дофига) и диски у них очень быстрые (300-600 мб/сек)

по настройке лучше доверять Роману - http://drupal-admin.ru/
есть положительный опыт работы с ним и его командой
у них же есть тариф на техподдержку екоммерц-сайтов и опыт работы именно с Drupal Commerce

после переноса они же помогут настроить все остальное - memcached, boost и прочее
кроме boost кстати есть возможность кешировать на стороне nginx, но там не очень тривиальная настройка

лучше потратить деньги на все это и заняться не техническими делами, а развитием магазина, имхо

9 октября 2015 в 7:39

- Без оптимизации и кеширования на стороне ситемного софта не обойтись, vps/vds, SSD, nginx или fast fpm и т.д. и т.п.
- На стороне Друпала, https://www.drupal.org/project/optimizedb + cron, https://www.drupal.org/project/entitycache + https://www.drupal.org/project/display_cache = must have

9 октября 2015 в 8:38

<a href="mailto:sas@drupal.org">sas@drupal.org</a> wrote:
- Без оптимизации и кеширования на стороне ситемного софта не обойтись, vps/vds, SSD, nginx или fast fpm и т.д. и т.п.

- На стороне Друпала, https://www.drupal.org/project/optimizedb + cron, https://www.drupal.org/project/entitycache + https://www.drupal.org/project/display_cache = must have

спасибо будет ставить

30 ноября 2015 в 16:41

"Boozenok" wrote:
Насколько вредным или безвредным является запуск крона каждый час

У нас на инет-магазине крон запускается каждые 10 минут, и я склонен увеличить частоту до 1 минуты (* * * * * в crontab).
Разумеется, надо настраивать как объем задания за 1 запуск крона - там, где это предусмотрено (кол-во сущностей для индексации в search_api, например), так и периодичность запуска отдельных заданий - с помощью ultimate_cron.

"Boozenok" wrote:
За несколько часов кеш форм растет до 2 ГБ

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

"Boozenok" wrote:
что лучше использовать для кеширования Изображений?

Стили изображений - мало кто юзает мониторы > FullHD, минус панели браузера, минус отступы лайтбокса - можно смело ужимать full size до размера 1920х1080, или даже поменьше - незачем гонять мегапиксели на клиент.
Ну, или смотреть в сторону CDN.

10 октября 2015 в 2:41

2. Есть ли решение для аякс корзины с атрибутами по аналогии предложенным xandeadx.

думаю он не сделал совместимость с атрибутами, потому что это сложно реализовать универсально
но написать аналог под конкретный сайт с заранее известными атрибутами - в чем проблема?

10 октября 2015 в 9:00

"imarat" wrote:
в чем проблема?

в вот этом:)

"imarat" wrote:
с заранее известными атрибутами

А вообще помог очень совет

"<a href="mailto:sas@drupal.org">sas@drupal.org</a>" wrote:
must have

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

11 октября 2015 в 22:32

<a href="mailto:sas@drupal.org">sas@drupal.org</a> wrote:

- На стороне Друпала, https://www.drupal.org/project/optimizedb + cron, https://www.drupal.org/project/entitycache + https://www.drupal.org/project/display_cache = must have

Я вот заметила следующую особенность, если через display_cache кешировать карточки товаров, то иногда аякс отдает ошибку Некорректные POST-данные формы. для анонимов... Кто-то сталкивался с таким?

15 января 2016 в 2:31