Автор Тема: Долгий ответ сервера  (Прочитано 2895 раз)

03 Февраль 2014, 13:03:46
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Доброго дня!

Есть каталог автозапчастей http://www.autogidrawlika.com.ua/katalog/, у него какой-то уж слишком большое время ожидания ответа сервера - 6-7 секунд. Можно увидеть здесь http://tools.pingdom.com/fpt/#!/bscqyl/http://www.autogidrawlika.com.ua/katalog/, а тест самого сайта вот здесь http://tools.pingdom.com/fpt/#!/cUQ0Ep/http://www.autogidrawlika.com.ua/ - всего 600 милисекунд или что-то вроде этого. У всех других сайтов на этом хостинге время ожидания ответа сервера примерно такое же и сами сайта грузятся довольно быстро, насколько хостинг позволяет :) А вот у каталога какая-то заморочка... Пробовал отключать htaccess - не помогло.

PrestaShop™ 1.4.4.0
Перекомпиляция выключена, Кеширование включено, Дополнительное кеширование выключено.

В какую сторону копать?
03 Февраль 2014, 17:20:43
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Оптимизировать тему и кешировать запросы к бд, вот что можно сделать.
А в остальном тестировать, находить что долго грузиться и исправлять.
03 Февраль 2014, 18:10:17
Ответ #2
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Оптимизировать тему и кешировать запросы к бд, вот что можно сделать.
А в остальном тестировать, находить что долго грузиться и исправлять.

Спасибо, сейчас погуглю на тему шаблонов и БД.
03 Февраль 2014, 20:28:26
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Для кеширования sql запросов нужен модуль.
Была такая тема.
04 Февраль 2014, 12:31:47
Ответ #4
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Для кеширования sql запросов нужен модуль.
Была такая тема.

Спасибо, поищу... пока не встречал.

Но уже сейчас могу сказать, что попробовал на этом же хостинге другую русскую сборку - от Престалаб с кучей разнообразного кеширования (до этого стояла сборка от Престадев) и, о чудо, магазин летает! Так что, похоже, в случае обычного хостинга, это является одним вариантом решения проблемы.

Большое спасибо всем откликнувшимся на мой вопрос!
05 Февраль 2014, 16:21:57
Ответ #5
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Но уже сейчас могу сказать, что попробовал на этом же хостинге другую русскую сборку - от Престалаб с кучей разнообразного кеширования (до этого стояла сборка от Престадев) и, о чудо, магазин летает! Так что, похоже, в случае обычного хостинга, это является одним вариантом решения проблемы.

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

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

Пока откатился на свой бэкап на сборке от Престадев.
05 Февраль 2014, 21:29:39
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Это версия сделана только под свои нужды. Чтобы на ставить модули на нее, нужно модули переделывать с четом измений в системных файлах.
07 Февраль 2014, 01:07:29
Ответ #7
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Это версия сделана только под свои нужды. Чтобы на ставить модули на нее, нужно модули переделывать с четом измений в системных файлах.

Да, я заметил, что в эти модули вложен код кеширования, может еще что-то... не знаю, я не программист... Насчет переделки модулей, чтобы они красиво работали не знаю.

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

Я сейчас пробую пойти обратным путем - отключил почти все карусели, взял основные модули из Престалаб (те, у которых названия начинаются со слова block) и заменил ими те, что были в сборке Престадев. Вылезла какая-то ошибка, которую погасил, закомментировав неугодные строки  ;) (они касались CacheFS, который я и не включаю), и производительность выросла в разы! Причем дело не только в каруселях - без них блоки тоже до этого тормозили, потому что не кешировались.

Потом заметил, что файлы кеша (в папке smarty/cache) обновляются при каждом обращении к странице. И, несмотря на это, все равно скорость движка увеличилась, однако. Этот недостаток - жизнь файлов - удлинил через добавление в БД в конфигурацию движка соответствующего параметра, который есть в Престалаб, но нет в Престадев.
(***, 'PL_CACHE_LONG', '31536000', '0000-00-00 00:00:00', '0000-00-00 00:00:00')
Видим он был нужен престалабовским модулям...

И после этого стало еще чуть быстрее - вот можно посмотреть и сравнить с предыдущими замерами в стартовом топике (правда на сайте сейчас осталось только 2 слайдера из 4-5), можно увидеть, что ожидание сервера уже стало маленьким - 400-700ms, а слайдеры удлиняют загрузку страницы секунды на 2-3 http://tools.pingdom.com/fpt/#!/bb8fw9/http://www.autogidrawlika.com.ua/katalog/
07 Февраль 2014, 13:18:38
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Могу сказать как я делаю, чтобы увелисть скорость. В prestashop кеширование включено уже на уровне ядра (можно улучшить, но зачем, если нужно что-то свое, то проще с любым framework собрать сайт).
1. Отключаю все стили и js темы, проверяю. Где время выполнение php отличается от среднего по сайту, правлю.
2. Подключаю стили, сначала основные, потом модулей. Опять тестирую. Разделяю так, чтобы на странице грузились только нужные. Не все файлы тупо из папки css, а только для 1 страницы.
3. Тоже самое для javascript. Оставляю только по 1 общей версии jquery, другие удаляю, код оптимизирую. Все что не нужно для загружаемой страницы удаляю. Карусели только 1-2 разных плагина. Но и они должны делать только то, что мне нужно, а не 1000 разных вариантов. Обычно сам пишу под конкретные требования.
4. Оптимизирую изображения.
5. Если товаров много, то добавляю Ajax подгрузку. Тоже самое для других данных.
После этого не нужно никаких модулей для дополнительного кеширования.

 
07 Февраль 2014, 13:56:32
Ответ #9
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо вам, что помогаете!!!

Могу сказать как я делаю, чтобы увелисть скорость. В prestashop кеширование включено уже на уровне ядра (можно улучшить, но зачем, если нужно что-то свое, то проще с любым framework собрать сайт).
1. Отключаю все стили и js темы, проверяю. Где время выполнение php отличается от среднего по сайту, правлю.
2. Подключаю стили, сначала основные, потом модулей. Опять тестирую. Разделяю так, чтобы на странице грузились только нужные. Не все файлы тупо из папки css, а только для 1 страницы.
3. Тоже самое для javascript. Оставляю только по 1 общей версии jquery, другие удаляю, код оптимизирую. Все что не нужно для загружаемой страницы удаляю. Карусели только 1-2 разных плагина. Но и они должны делать только то, что мне нужно, а не 1000 разных вариантов. Обычно сам пишу под конкретные требования.
4. Оптимизирую изображения.

У вас, наверное, хостинг дорогой, поэтому это сильно помогает. А тут у клиента обычный, за 100 гривен (400 рублей). Надо бы пробежаться с вашим планом по своему сайту, тогда еще быстрее будет.

Цитировать
5. Если товаров много, то добавляю Ajax подгрузку. Тоже самое для других данных.
После этого не нужно никаких модулей для дополнительного кеширования.

А как это - "добавляю Ajax подгрузку"? Это какой-то модуль? Он платный? У меня пока почти 700 товаров, с какого количества это потребуется?

Цитировать
Тоже самое для других данных.

То есть, один модуль ajax-подгрузки для всех нужд?

Еще раз спасибо!