Jump to content
Sign in to follow this  
Yoda

Помогите ускорить магазин и MegaFilter Pro

Recommended Posts

Подскажите пожалуйста, есть  магазин, 470 000 товаров в одной категории.

На выделенном сервере Intel(R) Xeon(R) CPU E3-1270 v6 @ 3.80GHz (8 cores) 16ГБ .
У товара 20 атрибутов, - суммарно выходит порядка 10М значений атрибутов (которые надо считать на-лету). 

Весь каталог работает через промежуточную прокладку в виде Sphinx-демона. 

Файлы индекса сфинкса лежат в RAM диске в оперативной памяти.
(выборка товаров в категории, подсчет количества значений атрибутов в фильтре, все все все, что можно крутится на сфинксе)

После партицирования индекса на 8 частей и перенастройки конфигурации демона для использования всех 8 ядер процессора, удалось снизить время реакции фильтра с 5 до 1-1.2сек.
Среднее время генерации страниц в районе 600мс. При переходе на php7.2 - будет порядка 400-450.
Владелец магазина возмущается, ему не достаточно скорости.

Подскажите, что можно сделать для ускорения магазина?

Share this post


Link to post
Share on other sites

сколько стоит чтобы так же тормозило ?:-D

Share this post


Link to post
Share on other sites
6 минут назад, PoliteX сказал:

сколько стоит чтобы так же тормозило ?:-D

 

Бесценно. Леонардо, я думаю тоже цену на Мона-Лизу сложить не мог.

Но реально тупит же, а у меня уже фантазия закончилась что можно еще сделать.

Share this post


Link to post
Share on other sites

отключить подсчет товаров в категории :D

 

  • +1 1

Share this post


Link to post
Share on other sites

Очень смешно!! Ага. 
Я только что сам перечитал, что написал, звучит как жесткий троллинг, однозначно. 
Но это не троллинг. 

С момента написания поста, мне пришли в голову еще кое-какие мысли, которые мы когда-то обсуждали с маэстро @SooR, можно ведь подсчет значений атрибутов делать не по текстовому полю, а по crc32 хешу. И теоретически это может дать прирост на какие-то 20-30%. 

Также в целом можно отказаться от JSON-атрибутов в индексе и преобразовать все в MVA.
Но мало ли, может кто сталкивался с подобным и есть еще какие умные мысли, как ускорить подсчет по 10 миллионам значений атрибутов.

Share this post


Link to post
Share on other sites

а что за категории такие, по 470к? (если не секрет)

 

Цитата

Владелец магазина возмущается, ему не достаточно скорости.

Скорости работы фильтра или сайта?

Edited by n3bo

Share this post


Link to post
Share on other sites

@Yoda , а лучше все на сфинкс перебросить.

А, так уже на сфинксе.

Тогда сделать под фильтр слейв базку.

UPD. Или поэкспериментировать с выгрузкой всех индексов фильтров в память, например, в tmpfs

Ёапта, и это сделали

Share this post


Link to post
Share on other sites
9 минут назад, n3bo сказал:

а что за категории такие, по 470к? (если не секрет)

 

Скорости работы фильтра или сайта?

 

Про категории - владелец сам расскажет, если захочет. 
Скорость работы как сайта так и фильтра. 

Так как в магазин скорее всего приедет еще столько же товаров,  владелец опасается подобных писем счастья:

 

 

yaya.jpg

Share this post


Link to post
Share on other sites
17 минут назад, n3bo сказал:

а что за категории такие, по 470к? (если не секрет)

 

Да даже шины/диски/обои.. много примеров

Share this post


Link to post
Share on other sites
4 минуты назад, SooR сказал:

@Yoda , а лучше все на сфинкс перебросить.

А, так уже на сфинксе.

Тогда сделать под фильтр слейв базку


Умрет mysql от таких вот запросов даже на на паре миллионов записей.

 SELECT COUNT(txt) as qty, attr_data.text as txt FROM main WHERE  category_id = 20 GROUP BY txt  LIMIT 100;


Так что не выход.
 

Share this post


Link to post
Share on other sites

Может добавить партиций?

UPD. Sphinx третий?

Share this post


Link to post
Share on other sites
3 часа назад, Yoda сказал:

Владелец магазина возмущается, ему не достаточно скорости.

Пускай аргументирует чем не устраивают <= 500ms, нужно спорить с его возмущениями, т.к. результат адекватный.

Share this post


Link to post
Share on other sites
12 минут назад, SooR сказал:

Может добавить партиций?

UPD. Sphinx третий?

Третий. Партиций 8 штук добавлено по количеству ядер.

 Без партиций вот так:

 

MySQL [(none)]> SELECT COUNT(txt).............................................................;
+-------+-------------------------------------+
| qty   | txt                                 |
+-------+-------------------------------------+
| 21440 | txt1         |
| 21440 | txt2         |
| 21440 | txt3        |
| 21440 | txt3        |
| 21440 | txt4                |
| 21440 | Itxt5                 |
| 21440 | txt6              |
| 21440 | txt7         |
| 18480 | txt8         |
| 18640 | txt9         |
| 18640 | txt10         |
| 18640 | txt11        |
| 18640 | txt12         |
| 18640 | txt13         |
|  7640 | txt14      |
| 27040 | txt15         |
|  7640 | txt16        |
|  7640 | txt17        |
|  7640 | txt18         |
|  7640 | txt19        |
| 27040 | txt20         |
| 27040 | txt21         |
| 35200 | txt22        |
| 35200 | txt23         |
+-------+-------------------------------------+


24 rows in set, 1 warning (0.13 sec)

 

C партициями вот так:

 

MySQL [(none)]> SELECT COUNT(txt) ..........................................................................;
+-------+-------------------------------------+
| qty   | txt                                 |
+-------+-------------------------------------+
| 21440 | txt1         |
| 21440 | txt2         |
| 21440 | txt3        |
| 21440 | txt3        |
| 21440 | txt4                |
| 21440 | Itxt5                 |
| 21440 | txt6              |
| 21440 | txt7         |
| 18480 | txt8         |
| 18640 | txt9         |
| 18640 | txt10         |
| 18640 | txt11        |
| 18640 | txt12         |
| 18640 | txt13         |
|  7640 | txt14      |
| 27040 | txt15         |
|  7640 | txt16        |
|  7640 | txt17        |
|  7640 | txt18         |
|  7640 | txt19        |
| 27040 | txt20         |
| 27040 | txt21         |
| 35200 | txt22        |
| 35200 | txt23         |
+-------+-------------------------------------+
24 rows in set, 1 warning (0.03 sec)

 

Также при использовании партиций возникла проблема с работой QSuggest запросов - но она решилась, формированием дополнительного индекса для подсказок.


 

Share this post


Link to post
Share on other sites
4 минуты назад, SooR сказал:

Пускай аргументирует чем не устраивают <= 500ms, нужно спорить с его возмущениями, т.к. результат адекватный.

500 мс - это с прогретым родным кешем мегафильтра.

При жмакании на любой параметр фильтра. Получается от 500 мс до 1.2 сек время ответа ajax запроса. 

 

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

Share this post


Link to post
Share on other sites

У меня несколько вариантов:

 

1. 

3 часа назад, Yoda сказал:

У товара 20 атрибутов

горизонтальная модель с динамическими колонками

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

3. свой фильтр

Share this post


Link to post
Share on other sites

4. Пре-кэширование всех категорий и первый уровень фильтров. По логике, последующие (2+) уровни должны отрабатывать быстрее за счет сужения выборки

Share this post


Link to post
Share on other sites
3 часа назад, Yoda сказал:

При переходе на php7.2 - будет порядка 400-450.

А при переходе на 7.3 350-400

Share this post


Link to post
Share on other sites
1 минуту назад, SooR сказал:

У меня несколько вариантов:

 

1. 

горизонтальная модель с динамическими колонками

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

3. свой фильтр

1 - не совсем понял

2 - серв тут едва ли загружен на 20% Смысла куда-то уносить фронт и базу никакого.

3 - от Mega фильтра у нас осталась админка и механизм отображения данных. Вся модель выборки собственная. Т.е. мы просто подменили все методы Mega. 

 

Но опять же я выше писал, что скорее всего приведение значений атрибутов к виду crc32(txt) и отказ от использования json модели в пользу плоского multi-value атрибута с набором bigint значений, по идее должен дать некий прирост. Вопрос только в том какой. Если это будет 50% от существующих цифр - видимо стоит и заморочиться.

Share this post


Link to post
Share on other sites
4 минуты назад, SooR сказал:

4. Пре-кэширование всех категорий и первый уровень фильтров. По логике, последующие (2+) уровни должны отрабатывать быстрее за счет сужения выборки

 

Вот это здравая мысль.

2 минуты назад, SooR сказал:

А при переходе на 7.3 350-400

Ioncube ...

Share this post


Link to post
Share on other sites

@Yoda , делай crc32, как самый быстрый способ проверить.

 

1 минуту назад, Yoda сказал:

1 - не совсем понял

 

Не

 

product_id filter_id filter_value_id
1 1 1
1 1 2
1 2 3
1 2 4
1 3 5

 

а

 

product_id filter_id_1 filter_id_2 filter_id_3
1 [1,2] [3,4] [5]

 

условно.

 

Если нет мультиатрибутов, то еще быстрее без json

 

Share this post


Link to post
Share on other sites
Только что, SooR сказал:

@Yoda , делай crc32, как самый быстрый способ проверить.

 

 

Не

 

product_id filter_id filter_value_id
1 1 1
1 1 2
1 2 3
1 2 4
1 3 5

 

а

 

product_id filter_id_1 filter_id_2 filter_id_3
1 [1,2] [3,4] [5]

 

условно.

 

Если нет мультиатрибутов, то еще быстрее без json

 

 

Условно, именно так оно и преобразовано в json-коллекции, которые сфинкс отлично отрабатывает.
Но я знаю общий алгоритм, с помощью которого к id можно нанизать коллекцию хешей и сделать выборку по плоскому набору, в целом это все не проблема. Проблема в нехватке времени на эксперименты.

 

Так что уже после НГ  заморочусь с crc32, о результатах доложу. Ну и надо посмотреть какое количество файлов мега укладывает своим кешем на одну стрницу и дальше понимать имеет ли смысл, или нет прогревать верхние значения. Можетбыть оно то и надо. Но если получим на выходе 200 * 200 файлов. То лучше уже без кеша. Либо опять садиться вскрывать мегу и перевешивать ее кеш в Redis.

 

Share this post


Link to post
Share on other sites

Если сильно заморочиться, можно использовать метод перерасчета пар Кантора для исключения дополнительного поиска по attribute_id, преобразовав два id в один:

attribute_id && crc32(text) => [какой-то один id]

 

Share this post


Link to post
Share on other sites
29 минут назад, SooR сказал:

Если сильно заморочиться, можно использовать метод перерасчета пар Кантора для исключения дополнительного поиска по attribute_id, преобразовав два id в один:

attribute_id && crc32(text) => [какой-то один id]

 

Не знаю кого) Я приблизительно о такой модели говорил в предудыщем ответе, ну и туда уже до кучи можно и group_id вставить и получим product_id => MVA{hash1, hash2, hash3....} Которые достаточно просто уже сгруппировать и рассчитать.

Share this post


Link to post
Share on other sites

если у товара 20 атрибутов - все ли они нужны для сортировки фильтром? Если нет - или убрать как таковые эти атрибуты  из стандартных атрибутов, или вынести их (ненужные типы атрибутов) в отдельную таблицу и выводить только на карточке товара, как информацию. Таким образом поиск по ненужным атрибутам происходить не будет. Не зная сферу этого магазина сложно сказать, но думаю там 5-7 атрибутов по которым нужна сортировка - остальное представляет собой целую кипу данных в таблице.

 

Наверное наивный совет да?

 

Share this post


Link to post
Share on other sites
11 минут назад, Guava сказал:

если у товара 20 атрибутов - все ли они нужны для сортировки фильтром? Если нет - или убрать как таковые эти атрибуты  из стандартных атрибутов, или вынести их (ненужные типы атрибутов) в отдельную таблицу и выводить только на карточке товара, как информацию. Таким образом поиск по ненужным атрибутам происходить не будет. Не зная сферу этого магазина сложно сказать, но думаю там 5-7 атрибутов по которым нужна сортировка - остальное представляет собой целую кипу данных в таблице.

 

Наверное наивный совет да?

 

 В данном случае 20 это минимальный набор. Не забывайте товаров же пол ляма. По ним как-то да надо ориентироваться. А оставить пять атрибутов. Это считайте что фильтра и нет.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By Sha
      Инструмент поможет провести системный анализ opencart страниц и расширений сайта!
       
      Модуль имеет два основных направления:
       
      1) Для пользователей:
         - Анализ модулей, расширений, дополнений сайта основываясь на архитектуре OpenCart
         - Построение наглядного timeline графика, с сортировкой по желаемому параметру
         это даст возможность выявить "узкие места" и предпринять меры по оптимизации сайта более точечно и направлено.

       
       
      DEMO
      логин: demo, пароль: demo
       
       
      2) Для разработчиков:
        - возможности описанные выше, плюс
        - построение расширенной таблицы структурированной по маршрутам, очерёдности или скорости выполнения,
        - время отработки model/view/controller каждого route, любой страницы сайта, с возможностью сортировки для сравнения,
        - простой debuger данных $data передаваемых в view каждого route. (экспериментально)

       


       
       
       
      Обратите внимание! Модуль является инструментом помогающим в работе с cms opencart/ocstore,
      и не является автоматическим бустером, компрессором, кешером и т.д. 
      так-же под оптимизацией сайта более направленно: не обязательно подразумевается полное избавление от "замедляющего" сайт функционала, вместо этого можно убрать его только в мобильной версии, заменить на более быстрый аналог, или оптимизировать, использовав inline css, уменьшив объём картинок, js кода, и тому подобное.
       
      используемые технологии:
      bootstrap.js,
      vue.js,
      opencart events.
       
      Спасибо, что дочитали до конца!) 
      разбирай пока дёшево!
    • By Sha
      700.00 руб
      Скачать/Купить дополнение


      Route debug board - системный аудит сайта, помощник в оптимизации сайта!
      Инструмент поможет провести системный анализ opencart страниц и расширений сайта!
       
      Модуль имеет два основных направления:
       
      1) Для пользователей:
         - Анализ модулей, расширений, дополнений сайта основываясь на архитектуре OpenCart
         - Построение наглядного timeline графика, с сортировкой по желаемому параметру
         это даст возможность выявить "узкие места" и предпринять меры по оптимизации сайта более точечно и направлено.

       
       
      DEMO
      логин: demo, пароль: demo
       
       
      2) Для разработчиков:
        - возможности описанные выше, плюс
        - построение расширенной таблицы структурированной по маршрутам, очерёдности или скорости выполнения,
        - время отработки model/view/controller каждого route, любой страницы сайта, с возможностью сортировки для сравнения,
        - простой debuger данных $data передаваемых в view каждого route. (экспериментально)

       


       
       
       
      Обратите внимание! Модуль является инструментом помогающим в работе с cms opencart/ocstore,
      и не является автоматическим бустером, компрессором, кешером и т.д. 
      так-же под оптимизацией сайта более направленно: не обязательно подразумевается полное избавление от "замедляющего" сайт функционала, вместо этого можно убрать его только в мобильной версии, заменить на более быстрый аналог, или оптимизировать, использовав inline css, уменьшив объём картинок, js кода, и тому подобное.
       
      используемые технологии:
      bootstrap.js,
      vue.js,
      opencart events.
       
      Спасибо, что дочитали до конца!) 
      разбирай пока дёшево!
      Добавил Sha Добавлено 25.04.2020 Категория Инструменты, утилиты Системные требования php 5.4 и выше Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 2.3 ocStore 2.3 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет Старая цена 2000  
    • By toporchillo
      750.00 руб
      Скачать/Купить дополнение


      YML экспорт в Яндекс.Маркет, Yandex.Turbo, Prom.ua, Aliexpress.com... для OpenCart 1.5.x
      Модуль формирует YML-файл для экспорта каталога товаров на такие площадки как Яндекс.Маркет, torg.mail.ru, prom.ua, price.ru, poisk-podbor.ru, hotprice.ua, nadavi.net, vcene.ua, prom.ua и многие другие
      Совместим с версиями OpenCart (ocStore, МахiStore) 1.4.x, 1.5.x.
      Версия для OpenCart 2 доступна здесь
      Как быть, если вдруг что-то не работает: Читать FAQ - Частые вопросы
      Не надо сразу создавать задачу в CRONе, не надо сразу отдавать ссылку на YML Яндексу
      1. Откройте ссылку на YML в браузере, щелкните правой кнопкой мышкой, выберете "исходный код".
      2. Вы увидите то, что сформировал скрипт. Возможно там будут сообщения об ошибках PHP. Текст ошибки прекрасно ищется в Гугле или в теме поддержки.
      3. Если вы не можете самостоятельно разобраться с ошибкой, то пришлите ссылку на экспорт. Сообщения без ссылки будут игнорироваться!
      4. Мне не достаточно прислать только результат работы Яндекс-валидатора.
       
      Отличия от стандартного модуля:
      Демо: экспорт (YML), админка (login: demo, пароль: demo)
      Скрипт export/yandex_yml.php предназначен для запуска по планировщику. Его запускать через SSH. Он сформирует файл экспорта export/yandex_yml.xml, который и нужно отдавать Яндексу.
      Не забудьте дать папке export права на запись 777.
      Такой способ экспорта предпочтительнее, чем по прямой ссылке /index.php?route=feed/yandex_yml
      Пример настройки запуска скрипта по расписанию для хостинга jino.ru
      1. Читаем общее описание запуска скриптов по расписанию http://www.jino.ru/support/faq/cron/
      2. В командной строке запуска скрипта пусть к PHP должен быть полный. Для хостинга jino.ru путь такой:
      3. У меня для запуска скрипта вот такая командная строка:
      /usr/local/bin/php-cli ~/domains/toporchillo.jino.ru/ocstore/export/yandex_yml.php   Возможные проблемы и их решение.
      1. XML-экспорт открылся быстро, но он пустой
      Убедитесь, что статус модуля в его настройках "Включен", убедитесь, что вы выбрали хотя бы одну категорию с товарами для экспорта
      2. XML-экспорт долго открывается, но он пустой, либо ошибка:
      Maximum execution time of 30 seconds exceeded   У вас так много товаров, что скрипт не успевает сформировать экспорт за отведенное время. Формируйте экспорт через SHELL
      3. Данные в форме настройки модуля сохраняются не полностью.
      Увеличте ваш параметр max_input_vars в настройках PHP
      4. В форме настройки модуля пустой список валют
      Проверьте ваши валюты. Их коды должны быть ISO-кодами.: RUB, UAH,...
      5. Что такое SHELL?
      Вы конечно знаете, что такое командная строка. В UNIX-системах она называется SHELL. Также существует протокол SSH, который позволяет запускать команды в командной строке (SHELL) удаленного сервера. Для доступа по протоколу SSH можно например использовать программу PuTTY
      Интерпретатор PHP тоже можно запускать из командной строки. В качестве параметра надо передать файл с PHP-скриптом, который должен выполнить интерпретатор. В данном случает надо запускать команду:
      полный_путь/php полный_путь/yandex_yml.php
      Интерпретатор PHP запустит PHP-скрипт, который в свою очередь создаст XML-файл экспорта.
      Кроме того, в UNIX-системах существует планировщик задач, который называется CRON. Он позволяет запускать команды SHELL по расписанию. В нашем случае нужно запускать команду:
      полный_путь/php полный_путь/yandex_yml.php
      На многих хостингах управление планировщиком сделано через веб-интерфейс. Надо лишь вписать команду и указать периодичность запуска, доступ через SSH при этом не требуется.
      Иногда Яндекс требует, чтобы при переходе по ссылке из Маркета, у товара были сразу выбраны опции. Поэтому модуль формирует ссылку на товар с хэш-кодами (#12-13). Если внедрить на страницу товара вот этот Javascript:
      <script type="text/javascript"><!-- $(document).ready(function() { var hash = window.location.hash; if (hash) { var hashpart = hash.split('#'); var vals = hashpart[1].split('-'); for (i=0; i<vals.length; i++) { $('#product').find('select option[value="'+vals[i]+'"]').parent().find('option').removeAttr('selected'); $('#product').find('select option[value="'+vals[i]+'"]').attr('selected', true).parent().trigger('change'); $('#product').find('input[type="radio"][value="'+vals[i]+'"]').attr('checked', true).trigger('click'); $('#product').find('input[type="checkbox"][value="'+vals[i]+'"]').attr('checked', true).trigger('click'); } } }) //--></script>   , то при переходе по ссылке будут выбраны сразу нужные опции. Может не работать для нестандартной темы.
      Демо: http://toporchillo.myjino.ru/ocstore/index.php?route=product/product&path=20&product_id=35#18#21

      Добавил toporchillo Добавлено 25.10.2012 Категория Обмен данными Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.4.1
      1.5.3.1 ocStore 1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop OcShop 1.5.6.4.х Обращение к серверу разработчика Нет Старая цена 0  
    • By snastik
      14 999.00 руб
      Скачать/Купить дополнение


      Оптимизация и настройка скорости загрузки магазинов
      Комплексная оптимизация скорости загрузки и отдачи контента магазина.
      Комплекс мероприятий, направленных на уменьшение ttfb проекта, повышение оценки GooglePageSpeed и стабильности работы проекта.
      В большинстве случаев базовых методов услуги достаточно для того чтобы снизить время ответа и нагрузку на сервер в 5-10 раз.
       
      Несколько примеров настроенных магазинов:
      ableflight.ru  7000 товаров
      Дешевый виртуальный хостинг Timeweb, среднесуточный трафик 500-600 человек. Opencart 1.5.
      Проведена базовая оптимизация системы и отбиты поисковые боты со страниц фильтра.
       
      nbmart.ru  100 000 товаров
      двухядерный VPS 2000, среднесуточный трафика 2000 человек в день. Opencart 2.1
      Проведена комплексная оптимизация системы и сервера, с дополнительным индивидуальным тюнингом сторонних модулей, установлена поисковая система Sphinx.
       
      http://vse-footbolki.ru  1 200 000 товаров.
      Выделенный сервер на Hetzner.   Opencart 2.1
      Проведена комплексная оптимизация системы с дополнительным индивидуальным тюнингом сторонних модулей, установлена поисковая система Sphinx.
      Выполнена настройка сервера. Проведена работа по оптимизации MegaFilterPro, Оптимизирована работа seopro, настроен memcache.
      Проект является по сути агрегатором, с постоянно обновляемой номенклатурой, и соответственно повышенным требованиям к производительности базы данных.
       
      Как правило все работы по настройке-оптимизации системы производятся "на горячую", т.е. без какого либо явного долговременного ущерба для работоспособности системы. В случае необходимости временно "положить" проект, работы производятся в ночное время.
      Базовое время выполнения комплекса работ - двое суток в рабочие дни, в зависимости от загрузки - до семи дней, с момента предоставления заказчиком всех необходимых доступов и согласования комплекса работ после аудита системы.
      При выполнении всего набора рекомендаций и методов ваш магазина начнут любить как покупатели так и поисковые боты.
       
      Услуга в себя включает базовый набор методов оптимизации:
      Аудит системы Оптимизацию количества и время выполнения запросов в базу данных (более 150 недостающих индексов). При установленном модуле "поставщики" от @usergio индивидуальный тюнинг таблиц модуля (повышение скорости обновления товаров возможно до 10 раз). Установку кеширующего модуля Turbo. Установку при необходимости генераторов карты сайта по крону. Аудит и настройку конфигурации mysql сервера (только на VPS). Настройку http-сервера для корректной отдачи статического контента (повышаем GooglePageSpeed). Настройку отдачи изображений. Чистку мусора от всякого рода ускорителей. Настройку Opcache для PHP-интерпретатора (только на VPS). Рекомендации по выбору серевера/хостинга, в 30% случаев можно за счет оптимизации сменить тариф на меньший без потери производительности. Рекомендации по замене/обновлению сторонних модулей на более производительные аналоги или свежие версии. Анализ/правка robots.txt для минимизации нагрузки от поисковых ботов. Для шаблонов @Katalina правка контроллеров шаблона и внедрение кеширования в них. Проверка настроек модулей/фильтров/шаблонов использующих кеширование и настройка необходимых параметров производительности. Проверка корректных прав на запись у системных файлов. Коррекция кода и правка архитектурных ошибок в ранних версиях MegaFilterPro.  
      для версий 1.5.x:
      Обновление системных классов работы с базой данных. Установку быстрого класса системного кеширования. Правки кода и избавления от артефактов с подсчетами товаров в категории. Правка архитектурной ошибки в ocstore с некорректным методом getFoundRows. Обновление vqmod до свежей стабильной быстрой версии.  
      для больших магазинов от 50 000 товаров возможны дополнительные опциональные реализации:
      Так же возможны услуги по установке поисковой системы Sphinx (возможно только на выделенном сервере) с использованием уникального авторского конфига, адаптированного для работы с кирилическими данными (только на VPS). Установка модуля seo_pro без кеширования. Установка memcache в качестве системного контейнера для хранилища данных системного кеша (только на VPS). Перевод генераторов любых фидов в cli-скрипты и генерация их по Cron.  
      Оциональные дополнения:
      Замена связки apache + nginx на чистый nginx. Перенос изображений на поддомен img. Изменения системного класса формирования превью изображений на библиотеку Imagick. Замена базового хранилища для формирования списков товаров на Sphinx, при отсутствии фильтров в списках товаров.
         
      Опциональные задачи, а так же задачи по переносу магазина на другой хостинг, установка/обновление модулей  как и сами модули - не входят в стоимость услуги по оптимизации и оплачиваются заказчиком по индивидуальной договоренности, дополнения приобретаются заказчиком у авторов самостоятельно!
       
      Отказ от ответственности:
      Основная составляющая услуги - это комплексный аудит системы, рекомендации по оптимизации и базовый набор методов.
       
      Услуга никоим образом не способна повлиять на сторонние сервисы metrika, analitics, etc, которые в силу собственных настроек пессимизируют оценку GooglePageSpeed.
       
      Также услуга ни при каких обстоятельствах не предполагает объединение-сжатие-перенос скриптов, так как эти методы в силу особенностей архитектуры Opencart и некоторых модулей приводят к некорректной работе системы.
       
      Услуга распространяется на структуру магазина на момент начала работ. Любые внесенные после проведенных работ изменения в код, установленные дополнения, либо их новые версии, могут снизить качество работы системы, никаких гарантий по скорости работы системы с измененной структурой кода или конфигурации серверного окружения, после проведенного комплекса оптимизации не распространяются.
       
      Любые последствия, или некорректная работа сторонних дополнений/модулей, не является гарантийным случаем. Гарантия работоспособности распространяется только на базовый функционал классов/методов/дополнений исходного кода движка (opencart, opencart.pro, ocstore).
       
      Устранение конфликтов в работе сторонних дополнений, возникших в результате проведения мероприятий по оптимизации - оплачивается заказчиком отдельно.
      Также услугу не подразумевает какого либо гарантийного-постгарантийного серверного администрирования.

      Любые некорректные состояния, зависания и нестабильная работа компонентов вашего сервера - является ответственностью хостинг-провайдера и вашего администратора сервера.
      Бекап системы до проведения работ является целиком и полностью задачей заказчика, в случае необходимости, создание бекапа до проведения работ исполнителем, оплачивается дополнительно.
       
      Предварительно невозможно никоим образом предоставить конечные расчетные показатели производительности ни в баллах GooglePageSpeed, ни во времени TTFB, так как эти показатели зависят от огромного количества факторов, часть из которых не связана на прямую с работой магазина.
       
      Замер показателей работоспособности системы проводится только собственным профайлером, отображающим время выполнения скрипта и количество запросов, и показателями из консоли Chrome. Любые показатели сторонних метрик типа Gmetrix и аналогов - не рассматриваются и не обсуждаются.
       
      Ознакомьтесь пожалуйста заранее с перечнем возможных ситуаций, когда явный результат по оптимизации производительности системы невозможен, либо возможен частично:
       
      Использования покупателем услуги шаблонов c themeforest или templatemonster, либо иных других шаблонов или модулей, которые изначально содержат архитектурные ошибки при невозможности оптимизировать их работу базовыми методами. Отказ заказчика менять или ограничивать функционал/шаблон (при необходимости). Отказ заказчика  предоставить по первому требованию полный доступ к системе (доступ в личный кабинет хостера, root, ftp, phpmyadmin, аккаунт администратора магазина с полным доступом к системе). Использование дополнений от @sv2109, @Exploit, @louise170. Использование русской сборки Opencart или иных сборок, кроме оригинального opencart, ocstore или opencart.pro. Использование любых дополнений полученных нелегальным путем (варез, фрилансер-поставил) а не приобретенных напрямую у авторов. Использования серверов с большим количеством других аккаунтов (в таких случаях бывает необходим дополнительный тюнинг и настройка сервера, которые не входят в стоимость базовой оптимизации) Использования каких либо дополнений/модулей/функционала, который в режиме реального времени обращаются к сторонним API (парсят цену наличие с донора, обновляют валюты, рассчитывают доставку etc...). Частично возможен перевод таких дополнений на AJAX (опционально). Оптимизация производительности FilterPro возможна частичная при некоторых дополнительных условиях. Использование Ocfilter, так же как и FilterPro подлежит частично оптимизации, но в некоторых конфигурациях может формировать огромную нагрузку от ботов на систему. Оптимизация любых модулей, с частично или полностью закрытым кодом Ioncube.  
      Ни при каких обстоятельства после проделанного комплекса базовой оптимизации и получения заказчиком отчета по результатам аудиты системы, а также в случае частных ситуаций, перечисленных в вышеприведенном перечне, оплата за услугу не возвращается.
      В случае возникновения частных случаев, приведенных в описании услуги, требующих дополнительной оплаты со стороны заказчика и отсутствии частного взаимопонимания с заказчиком, любые опциональные и иные работы оплачиваются почасово по тарифу 1200 рублей в час.
       
       
      Добавил snastik Добавлено 27.06.2017 Категория Услуги  
    • By snastik
      1 500.00 руб
      Скачать/Купить дополнение


      Turbo | Ускоритель Opencart 2.x | HHTPS FIX | VievedMod | V1.1
      У вас тормозит магазин?
      Ваш хостинг гневно шлет письма о превышении нагрузки?
      Клиенты уходят так и не дождавшись загрузки страницы?
      Turbo - решит все ваши проблемы в 99% случаев*.
      Пока что Turbo работает только для версий 2.0.x 2.1.x
      для версий 1.5.x используйте Turbocache в связке с этим решением
      Модуль основан на популярном модуле Turbocache а также на opensource решении от budgetneon.
      Также он использована библиотека MobileDetect
      Что делает этот модуль и для чего он нужен?
      Кеширует все повторяющиеся ресурсоемкие элементы системы ( как то верхнее меню, модуль категорий и все стандартные модули) а после этого сохраняет в кеш целиком всю страницу магазина и при повторном обращении по этому адресу, выдает заранее сохраненный контекст. Благодаря чему существенно снижается нагрузка на сервер и увеличивается скорость повторной загрузки страниц для новых посетителей.
      Демо на реальном магазине: st-sklad.ru
      Положительные отзывы:
      ----------------------------------------------------------------------
      Огромное спасибо автору, кто еще не уверен скажу , модуль стоит на рабочем проекте, работает шикарно, лучше не бывает, так же пользовался модулем нитро пак и скажу глюков в нем и правда куча, мне в нем нравиться только сжатие картинок , там есть функция, указываешь папку и он сжимает, но база данных там увеличивается на 100% у меня база огромная из за того, что товара 25000 шт, с нитро она нереально огромная.
      Данный модуль отрабатывает шикарно и без ошибок, ну и поддержка русскоязычная, а это несомненный плюс,
      Итог модуль стоит своих денег хоть я и клянчил скидку, но и без данной скидки модуль стоит намного больше указанной суммы.
      ----------------------------------------------------------------------
      Отрицательные отзывы:
      ----------------------------------------------------------------------
      Пока нет....
      ----------------------------------------------------------------------
      Т.е если к вам зашел посетитель на одну страницу и увидел меню магазина, то для всех остальных посетителей, меню уже не будет формироваться запросами в базу данных и оказывать нагрузку на сервер, а загрузится в виде готового набора данных.
      Это позволяет значительно снизить нагрузку на базу данных на всех первичных генерациях страниц.
      После этого. Если страница была просмотрена одним пользователем, для вех остальных она уже будет готовая взята из кеша и выведена в браузер, практически без обращения в базу данных.
      Т.е. дополнение использует двухуровневое кеширование данных, что позволяет высвободить до 90% вычислительных ресурсов сервера.
      Данное решение является уникальной разработкой команды Opencart.Pro и не реализовано до сих пор ни в одном из модулей оптимизации Opencart.
      Даже на пустом магазине дополнение показывает прирост производительности в 15 раз

      Особенности дополнения.
      Поддержка:
      - Мультимагазин
      - Мултивалюты
      - Мультиязчыность
      - Несколько групп пользователей
      - HTTPS протокола
      - Возможности корректной работы по обеим протоколам!!!
      v. 1.0
      -Полноценное сохранение всех серверных заголовков.
      -Возможность из админки добавить исключения для запрета кеширования любых контроллеров.
      -Возможность из админки задать время жизни кеша.
      -Облегченный алгоритм очистки "протухших файлов". Старые файлы проверяются не при каждой загрузке магазина а раз в час.
      v 1.1
      -Добавлен модуль просмотренных товаров, работающий независимо от включенного глобального кеша.
      -Добавлен модификатор, исправляющий некорректное кеширование системных файлов, и формирование ссылок домена, при работе с обеими протоколами.
      -Для модуля просмотренных товаров - уже есть тплки для шаблона Coloring
      -Добавлена кнопка очистить кеш в админке
      -Масса мелких багфиксов
      И самое главное дружит с шаблонами, которые отдают разный контент под разные устройста (типа Journal) а не используют адаптивную верстку.
      Установка дополнения:
      1. скопировать файлы из папки UPLOAD в корневую директорию вашего магазина.
      2. задать права 777 для папки system/storage/turbocache.
      3. Добавить в index.php в корневой папке вашего магазина после строки.
      $registry->set('cart', new Cart($registry));
      вот такие строки:
      // Turbo
      require_once(DIR_SYSTEM . 'turbo/turbo.php');
      GLOBAL $turbo;
      $turbo = new Turbo($registry);
      4. Обновить кеш модификаторов в административной части вашего магазина.
      5. Запросить лицензионный ключ личным сообщением на торговой платформе у продавца дополнения, либо запросом на почту [email protected], указав номер покупки, ваш ник и домен магазина.
      6. Активировать дополнение в настройках модулей административной части вашего магазина.
      7. Установить необходимые вам настройки и ввести код лицензии во вкладке лицензия.
      8. Если вы используете HTTPS протокол. Загрузите из папки https_fix модификатор. Обновите кеш модификаторов и удалите системный кеш.
      Дополнительные фунции:
      Дополнение умеет изменять размер сжатия Jpg и Png изображений (пока эта возможность находится в экспериментальном режиме. В дальнейшем в дополнении могут появится дополнительные возможности для оптимизации оценки GooglePageSpeed).
      Часто задаваемые вопросы:
      DEMO => TURBO.OPENCART.PRO
      Установка и настройка модуля на магазине клиента + 100% от стоимости модуля.
      При обновлении на версию 1.1 внимательно прочтите инструкцию.
      Не рекомендуется к использованию с темой Journal.
      Если после установки модуля нагрузка на вашу систему не снизилась, а быстро стали работать только закешированные страницы, то скорее всего у вас косячные сторонние модули, либо не правильная конфигурация серверного окружения. С такими пациентами - пишите в личку.
      Ручная оптимизация больших магазинов и тонкая настройка серверов - под ключ.
      *Для чистого магазина на Opencart 2.x при условии отсутствия сторонних дополнений, существенно потребляющих ресурсы сервера.
      Добавил snastik Добавлено 04.04.2016 Категория Кэширование, сжатие, ускорение Системные требования Opencart версий 2.0 - 2.1.xIoncubeLoader с поддержкой Ioncube V9.0<PHP 5.3Внимание. Дополнение не будет корректно работать с переименованной папкой администратора. Сайт разработчика http://opencart.pro/ Метод активации Без активации Ioncube Loader Нет OpenCart ocStore OpenCart.Pro, ocShop Обращение к серверу разработчика Старая цена  
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.