Вход • Регистрация

Адские тормоза

  • 26 декабря 2017 г.
  • Всем привет, возникла проблема. Все другие модули и обычные страницы отображаются практически мгновенно на сервере, а вот с магазином все плохо.
    При любых настройках сервера безбожно тупит при рендере списка товаров в категориях. БД нагружается под %100 и вывод возникает только секунд через 12. В магазине 70000 товаров. В списке товаров у каждого товара выводится по несколько опций из разряда "Дополнительная характеристика".
    Что делать?
    • 26 декабря 2017 г.
    • Для начала - фотки пожмите под WEB (в фотошопе к примеру)
    • 26 декабря 2017 г.
    • Изображения товаров, в принципе, оптимальны (те, что проверил навскидку). Но вот GIF на странице в левой колонке больше 2Мб (в сумме), возможно про эти тормоза и говорите, ноя никаких особых тормозов не заметил.
      • 26 декабря 2017 г.
      • Вы в категорию какую-нибудь зайдите.
        • 26 декабря 2017 г.
        • Ес-но заходил, особых тормозов не разглядел, вот пример.
          Но если считает(е), что тормоза есть, ниже подсказал как можно оптимизировать фото.
          • 26 декабря 2017 г.
          • Да там кроме фото работы хватает.
            • 26 декабря 2017 г.
            • Убрал слайд-шоу из каталога - не повлияло ни на что.
              • 26 декабря 2017 г.
              • А какие-то изменения в файлах проводили? После чего примерно началось?
            • 26 декабря 2017 г.
            • После наполнения каталога все и случилось)
              • 26 декабря 2017 г.
              • 22 декабря на сайте редактировалось большое количество файлов JS и css.

                Попробуйте еще на другом хостинге это проверить.

                И да кстати у Вас нет лицензии на сайт.
              • 26 декабря 2017 г.
              • Про лицензию верно, еще не куплена, сайт в разработке.
                На локальном сервере все работает ровно так же.
          • 26 декабря 2017 г.
          • Все изображения товаров оптимизированы, картинки в товарах весят копейки. И суть не в nginx, который их выплевывает. Проблема в БД, потому что в консоли Mariadb сразу вырастает до 100-150% при запросе к странице.
            • 26 декабря 2017 г. , редакция: 26 декабря 2017 г.
            • У вас конкретно вот это изображение http://new.vino-nn.ru/images/slidebg3-2.jpg занимает на отклик 10 секунд. Почему сказать не могу.
              • 26 декабря 2017 г.
              • У меня даже с отключенным кешем в браузере - моментально.
              • 26 декабря 2017 г.
              • Попробуйте временно отключить слайдер, мне кажется в нем загвоздка.
          • 26 декабря 2017 г.
          • В какой -нибудь категории перейдите страницу на 9, к примеру, все тормоза будут обязательно.
  • 26 декабря 2017 г.
  • Вам надо с оптимизацией сайта поработать не плохо, очень много проблем из-за фоток (как написал Дмитрий) css немереное количество в которых по две строчки написано и js туда же.
    • 26 декабря 2017 г.
    • Почему проблема с фото? Они все системой образмерены. CSS и JS - это понятно, сайт в разработке. Они те же самые в том же количестве выводятся и не в магазине, все летает. Проблема именно с БД, как решить - не пойму.
      • 26 декабря 2017 г.
      • вот тут Вы не правы. Если ваш фотик снял файл размером в 12Мб, Вы без оптимизации на сайт заливаете? Так неверно.
        Вот Вам сервис, где без фотошопа можете сжать любое изображение и pdf в пару кликов.
        • 26 декабря 2017 г.
        • Все изображения товаров оптимизированы, еще раз говорю об этом) И суть не в nginx, который их выплевывает. Проблема в БД, потому что в консоли Mariadb сразу вырастает до 100-150% при запросе к странице.
  • 26 декабря 2017 г. , редакция: 26 декабря 2017 г.
  • Бэкэнд:
    Сам не работал ранее с сайтами у которых большое количество товаров и характеристик, и проблем не видел.
    Сейчас на сайте примерно 10 тыс товаров, и ~1000 характеристик проблемы (тормоза) были жуткие.

    Оптимизировал на php7 так, первым делом включить кэш, но настроить нужно Memcached, от другого кэширования у меня на 7 пыхе вообще сайт падал. Но это была не самая последняя версия.
    Нужно настроить кэширование, тогда серверная часть будет работать более менее (кэш по-моему не работает если зайти под админом). Далее отключить кэширование поставить галку в настройках "Включить профилирование SQL-запросов", и найти если есть узкие места, попытаться оптимизнуть запросы к БД (я не полез туда, т.к. очень много переписывать).

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

    Фронд энд: тут все намного проще идем снимаем галку "Включить режим разработки", включаем кэш, разлогиниваемся далее в хроме открываем девтулс network и смотрим что самое тяжелое грузится, картинки действительно могут быть тяжелые, их нужно компрессить, особенно те которые используются в оформлении сайта.
    js не использовать инлайно, грузить минимизированные версии скриптов, если есть js плагины которые можно грузить асинхронно сделать это.
    css попытаться запихнуть в 1-2 файла.

    p.s. у меня после оптимизации серверной части пропала возможность обновляться т.к. там все это добро потрется. Скоро (2-3 месяца =)) буду готовить сайт к обновлению и отправлю все правки по оптимизации на форум, и разработчикам, может пригодится.

    p.p.s кому интересно оптимизированный сайт (не реклама)


    • 05 февраля 2018 г. , редакция: 05 февраля 2018 г.
    • я бы на вашем месте чуть блоки сменил, а товары в 3 столбца


    • 05 февраля 2018 г.
    • Хороший результат. При первом запросе ответ сервера получился 1200мс, зато все последующие - 120-140мс. Ну и сёрфить по сайту комфортно, очень быстро всё открывается.
  • 26 декабря 2017 г.
  • Цитата
    БД нагружается под %100 и вывод возникает только секунд через 12. В магазине 70000 товаров. В списке товаров у каждого товара выводится по несколько опций из разряда "Дополнительная характеристика".
    Что делать?

    Включать режим разработчика, отключить кеширование и включить профилирование sql-запросов. Потом написать, какие именно запросы долгие
    • 26 декабря 2017 г.
    • Скорее всего для того чтобы тормоза исчезли как раз нужно отключить режим разработчика и включить кэширование и сразу всё должно залетать.
      В режиме разработчика с отключёным кэшем действительно всё жутко тормозит.

Новости

  • 24 апреля, среда
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 
  • 15 декабря 2023 г.
  • Подводим итоги 2023 года. Выпустили новую сборку DIAFAN.CMS 7.1.1, вводим новые тарифы на аренду сайта и коммерческую поддержку и автообновления с января 2024 г., строим планы на будущий год.