Как сократить время ответа сервера?

Подскажите, как добиться минимального времени ожидания сервера при работе магазина на shopscript? https://developers.google.com/speed/pagespeed/insights/ ругается и настоятельно рекомендует сократить время ответа сервера. в моем случае оно скачет от 250 до 1500 мс, у конкурентов каким-то образом 40-80мс. уточню, это не время загрузки страницы, а время пока сервер "думает" , т.е. идет обработка логики скрипта магазина

7 ответов

  • 3

    Самое первое, что стоит проверить в случае медленной генерации страниц во фреймворке — это выключен ли режим отладки (debug mode). Перейдите в приложение Инсталлер в раздел Настройки. Если режим отладки включен, выключите его, и это должно значительно ускорить время генерации страниц.

    Если отключение режима отладки не помогло, другой причиной может быть тема дизайна и лишние вызовы в ее шаблонах хелперов загрузки дополнительных данных. Самый простой способ проверить так это или нет — открыть витрину с темой дизайна «Дефолт 2.0» или любой другой бесплатной темой разработки Webasyst. Найдите эту тему дизайна в разделе Дизайн приложения (Магазина, Блога, Фото, какое бы приложение вы ни использовали) и откройте ее предпросмотр на сайте — ссылка в правом верхнем углу. Если предпросмотр дефолтной темы работает быстро, а ваша основная тема дизайна по-прежнему работает медленно, то значит дело в ней, и вам следует обратиться к разработчику темы дизайна с вопросом о том, как увеличить ее производительность.

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

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

    • +3
      name name name name 28 апреля 2015 11:59 #

      режим отладки отключен, использование дефолтной темы дизайна и отключение всех плагинов дает прирост скорости 10-15%, но это мало. увеличить время ответа сервера нужно в несколько раз . пробовал на разных хостингах, VPS и т.д. даже "чистая" установка шопскрипт не дает приемлемой скорости ( максимум , что удалось выжать на ОЧЕНЬ мощном VPS - 120-150мс. время приемлемое, но очень дорого). а если добавить товары, то скорость приближается теперешней.


      у вас есть пример сайта работающего на shopscript 6 чтобы время отклика было меньше 100 мс ? пытался найти - не нашел

      • +2

        Ну все таки 120-150 мс — это уже значительно лучше, чем 250 и 1500 мс, о которых вы изначально написали :)

        Время генерации страницы зависит не столько от количества товаров, сколько от количества сложных SQL-запросов. Если на главной странице опубликовать много товарных блоков: рекомендуемых товаров (cross-selling), схожих товаров (upselling), добавить возможность фильтрации товаров в категориях по характеристикам и т. д., то, как ни крути, все эти запросы будут обращаться к базе, и это будет увеличить скорость генерации страницы.

        Подключение Memcached для кеширования списков товаров может дать прирост в скорости на 10—15% (скоро добавим документацию как это сделать).

        Для сравнения: среднее время генерации главной страницы магазина в облаке на тарифе «Про» на сегодня — 200—250 мс.

        Добиться 100 мс и ниже возможно, но потребует максимальной "отвязки" от БД и перевода ключевых страниц на статические. Довольно трудоемко. Если уж есть задача сделать скорость генерации страницы минимальной всеми возможными способами, то проще всего, действительно, воспользоваться сервисом вроде CloudFlare, как вам рекомендовал Леонид в соседнем комментарии.

  • 3
    Маркет Стройка 11 декабря 2016 14:36 #

    вот что получилось

  • 2
    Demon13 13 мая 2015 09:51 #

    у меня еще круче:

    старый магазин (http://d1350.com/) отдает страницы за 0,25-0,4с, а новый (http://d1350.com/new/) отдает в 3-4 раза медленней!!!!

    То есть новый продукт в 3-4 раза хуже?

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

    Пробовали все что описано: мемкеши, нгниксы, разные варианты БД и так далее. Итог за 3 месяца упорной настройки снизили время с 1,5с до 1сек, но это с изменением кода! мы переписали часть запросов к БД которые были "на поверхности", думаю если углубиться то можно и переписать еще, но это не бюджетно.

    о хостинге: ЦПУ: 2*2000 оперативка 2048Мб

    совет перейти на более мощный хостинг - считаю неразумным

    • +3

      Вы отправляли FTP доступ в поддержку. Я потестил http://d1350.com/new/

      Вердикт: отключите дебаг-режим. Со второго запроса начнёт работать кеш, и будут у вас те же самые 400 мс. И на главной, и на странице товара, и на странице категории. Что не так?

      • +1
        Demon13 Demon13 13 мая 2015 13:38 #

        пробовали отключать - не сильно помогло. максимум на что мы разогнали 1 секн

        после правки запросов получили 0,8

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

    • +3

      Ещё немного подозрительно, что банальный phpinfo() занимает то 20, то 100, то 800 мс. Некоторое подозрение на gzip-компрессию. Ещё некоторое подозрение связано со скоростью чтения с диска (т.е. пока скрипт в памяти, работает быстро). Можно было бы туда посмотреть.

      • +1
        Demon13 Demon13 13 мая 2015 13:43 #

        попробовал у меня вроде все очень быстро https://developers.google.com/speed/pagespeed/insi...

        вы как мерили? уменя не вышло получить более 100мс

        про Гзип - завтра спрошу программистов, но тут имеет смысл сравнивать со старым магазином: не хочеться перезжать на новый магазин и терять в скорости в разы - так быть не должно. Скорость чтения с диска проверяли - там все хорошо.


      • +1
        Demon13 Demon13 13 мая 2015 13:43 #

        попробовал у меня вроде все очень быстро https://developers.google.com/speed/pagespeed/insi...

        вы как мерили? уменя не вышло получить более 100мс

        про Гзип - завтра спрошу программистов, но тут имеет смысл сравнивать со старым магазином: не хочеться перезжать на новый магазин и терять в скорости в разы - так быть не должно. Скорость чтения с диска проверяли - там все хорошо.


        • +1

          Тестил без изысков: открывал в гугл-хроме панель разработчика и смотрел время в сетевой панели. То есть время от времени, где-то раз в 1-2 минуты, переключался на вкладку с вашим сайтом и обновлял страницу.

          В зависимости от положения звёзд на небе получаются результаты от 20мс до 800мс для phpinfo().

          Для главной страницы магазина (дебаг мод выключен) от 450мс до 1200мс.

          Пинг до сервера 2-3мс и не меняется.

      • +1
        Demon13 Demon13 14 мая 2015 04:34 #

        Ваш предидущий поста пропал... или у меня уже с глазами что-=то не так...

        Возможно 800мс - это когда совпало время с работой наших программистов, возможно глюк сервера. Сегодня таких больших разбросав не наблюдаю.

        На сегодня программисты поправил код, и мы получили в среднем всего лишь 2х кратное "отставание" новой версии от старой. с этиv можно уже жить... но все мне кажется, что так не должно быть :(

        Для теста создали экаунт в облаке у вас, загрузили товар, пока отзыв от магазина получаем разный, от 0,35с самое быстрое, до 2сек самое медленное. Попробуем потыкать в магазин пару дней, потом замерим скорость.

        С кэширование нашего магазина есть проблемы: у нас очень много товара и вероятность того что пользователь выберет товар который уже до него выбирали не большая.

        Как итог, мое мнение: переезжать магазину у которого более 10тыс товаров на новый движок - смерти подобно...

      • +1
        Demon13 Demon13 15 мая 2015 06:18 #

        я перенес к вам на облако магазин: http://d1350.host.webasyst.com/shop/332308/

        быстрей работать он стал 0,65с-0.45 - что не плохо

        теперь вопрос: как же мне добиться таких же результатов на своем хостинге...

  • 2
    Маркет Стройка 2 декабря 2016 12:35 #

    Так все таки, кто какой результат получил минимальный? не знаю по какой причине, но раньше отклик был 0.250-0.560мс, включили только блог на сайте, и отклик стал больше 1 сек.

    Сейчас пользуюсь стандартным хостингом ВЕБАСИСТа (999 руб), думаю переезжать на VPS, но вот разница будет? :)

    Еще хотел бы услышать о сервисе CloudFlare, кто то им пользуется? 20 зеленых рублей не такая большая сумма :)

    п.с. вообще есть хоть один сайт работающий на вебасисте с откликом менее 200 мс? :) мой сайт: https://saiding77.ru/

    • 0
      Алексей Алексей Webasyst 3 декабря 2016 15:30 #

      Беглый поиск дал несколько сайтов на timeweb и beget которые отдают за 110-150 мс.
      Обычная установка на php 7.0 c opcache даёт около 300мс.

    • +2

      У меня 160 мс. на рабочем сайте с 5к товарами и не дефолтной темой. Это на PHP7 + opCache. Максимум что у меня получалось выжать: 45 мс на этом же сайте при пинге в 30-35 мс., т.е. страница отдавалась за 10 мс., но это черная магия.

    • +1

      На нашем https://pitersmoke.ru/ менее 200 мс. 150-180. Дебаг мод выключен, php 7.1. Практически не оптимизировали на скорость.

      Другой проект размещен на быстром недорогом VPS - 101 мс ответ сервера самое быстрое.

  • 2
    Vital 25 декабря 2016 16:49 #

    Мда, если бы я раньше прочитал про проблемы со скоростью - возможно допиливал и дальше свой старенький магазин на SS4, но позарился на обещания ускорения работы в 7 раз... в итоге старый работает в 3 раза быстрее, а я бьюсь над проблемой ускорения нового (

  • 1
    Михаил Ушенин Webasyst 28 апреля 2015 07:23 #

    У вас установлены плагины? Большое время "раздумий" на всех страницах витрины или на каких-то конкретных?

    • +1
      Dima Stefantsov Dima Stefantsov 28 апреля 2015 07:43 #

      Здравствуйте, Михаил. На примере своего "дополнительного вопроса" вы заметили недостаток Хаба? Здесь, в отличие от stackoverflow.com, эталона, нельзя делать комментарии к вопросу. Только ответы и комментарии к ответам.

      Насколько чище и логичнее были бы обсуждения, если бы комментарии можно было писать к вопросам!

    • +1
      name name name name 28 апреля 2015 12:24 #

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

  • 0

    Думаю, что лучшая ваша надежда - это caching reverse proxy на базе nginx или Varnish поверх вашего сайта на Shop-Script. Настроить его может быть непросто. Граблей много. И не без недостатков (в частности, предвижу сложности для зарегистрированных пользователей). Но это единственный известный мне способ добиться отклика 40-80мс.

    • +2
      name name name name 28 апреля 2015 12:52 #

      спасибо за совет! вбил в гугл и понял, что пусть лучше тормозит :)

      для общего развития: данное решение можно применить только на VPS или выделенном сервере, верно ?

      • +2
        name name name name 28 апреля 2015 12:56 #

        еще вопрос. поддерживает ли shopscript работу с Memcache ?

        • +1

          Есть поддержка Memcached на уровне ядра. Но это не мэйнстрим ни разу и для меня тёмное шаманство. Говорят, есть люди, которые настроили такое кеширование. Но сам я подробностей, к сожалению, не знаю.

          • +1
            name name name name 28 апреля 2015 13:08 #

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

            • +3

              Не-не, просто так от включения там ничего не запустится. Надо в конфиги что-то вписывать. Документации нет, придётся копаться в коде wa-system/cache/adapters/waMemcachedCacheAdapter.class.php

              И потом ещё следить, как бы он чего лишнего не закешировал, и проблемы по ходу решать.

      • +1

        Да. Если на своём хостинге, то только VPS или выделенный.

        Теоретически могу предположить схему с reverse proxy, отданным на аутсорсинг во внешний сервис. В частности, CloudFlare так работает.

        Кстати. CloudFlare же. В базовой конфигурации он попроще, чем вам надо, но если заплатить денег за бизнес аккаунт и поковыряться, то, наверное, его даже можно настроить под ShopScript. Граблей не сильно меньше, чем nginx или varnish, но хотя бы интуитивно понятный интерфейс присутствует...

        • +1
          name name name name 28 апреля 2015 13:06 #

          нашел такой сервис, из России , кстати. Айри называется. Именно то, что нужно ,время отклика 30-40мс, но цена для меня слишком большая (.

          до шопскрипта сайт у меня был на SaaS платформе, время отклика всегда было до 80 мс. А сейчас скачет , бывает и 1500-2000 мс, я расстроен (

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите