Исправляем долгий ответ сервера на Prestashop 1.6

Или ускоряем скорость загрузки сайта в 10 раз с помощью модуля Prestashop Cleaner

Исправляем долгий ответ сервера на Prestashop 1.6 с помощью модуля Prestashop Cleaner

Сразу хочу сказать о том, что эта статья написана для тех людей, которые используют в качестве хостинга быстрые VPS/VDS серверы с приличным запасом вычислительной мощности и при этом замечают, что сайт очень долго отвечает при обращении к нему, даже не смотря на мощности, предоставленные на обработку его запросов.

Для тех, кто пользуется недорогими shared-хостингами, данная статья также окажет положительное влияние.

Сайт продолжает долго отвечать даже после «тюнинга» сервера БД и web-серверов nginx и apache, которые работают в связке. Парадоксально, но при включении кэширования посредством Memcache/Memcached, которое должно значительно сократить время ответа от сервера посредством кэширования запросов к БД в оперативной памяти сервера, Prestashop 1.6 начинает работать ещё медленнее, а в админ-панели вообще невозможно работать, какое-либо движение в ней попросту останавливается.

Так в чём же дело?

А дело-то вот в чём...

Со временем Prestashop 1.6 накапливает у себя в БД космическую кучу информационного мусора, особенно если ты любишь устанавливать/удалять различные модули, которые расширяют функционал твоего сайта, удалять товары и/или категории, заказы и прочее, что хранится в базе и имеет индексную связь с кучей других таблиц в ней.

При правильном удалении товаров и категорий, например может возникнуть ситуация, когда товар или категория удалены, а ты всё ещё можешь обратиться к нему по известному ранее URL-адресу, но только ты не получаешь «Ошибку 404: Страница не найдена», а получаешь ответ сервера «200, ОК» и белую страничку с надписью «js_def».

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

Что будем делать?

Пилить, Шура, пилить!

Первым делом заходим в админ-панель и идём в раздел «Модули» > «Модули и Сервисы», далее находим через поиск модуль «Prestashop Cleaner» и устанавливаем его.

Исправляем долгий ответ сервера на Prestashop 1.6

Затем переходим к настройке, нажав на кнопку «Настроить».

Исправляем долгий ответ сервера на Prestashop 1.6

В открывшемся окне нас будут интересовать только два нижних блока: «Functional integrity constraints» и «Database cleaning».

Исправляем долгий ответ сервера на Prestashop 1.6

Перед следующими манипуляциями обязательно сделай резервную копию базы данных сайта!

После того, как ты сделаешь резервную копию своего сайта, тебе нужно нажать на кнопку «Check & Fix»

Исправляем долгий ответ сервера на Prestashop 1.6

И дождаться ответа сервера.

Если ты не дождался ответа сервера, а получил «Ошибку 502: Bad Gateway», то ничего страшного, модуль в любом случае пофиксит всё в фоне. Подожди ещё 3-5 минут, а затем обнови страницу с модулем и попробуй снова нажать на кнопку «Check & Fix».

При повторном обращении к скрипту, он должен отработать сразу, так как он уже всё вычистил при первом обращении и вверху, над блоками модуля появится отчёт на зелёном фоне с SQL-синтаксисом:

Исправляем долгий ответ сервера на Prestashop 1.6

Теперь можно нажать на кнопку «Clean & Optimize»

Исправляем долгий ответ сервера на Prestashop 1.6

И также дождаться ответа сервера с отчётом вверху страницы.

Исправляем долгий ответ сервера на Prestashop 1.6
Такое сообщение может появиться, если БД твоего сайта не нуждается в очистке и оптимизации.

После этой манипуляции, скорость ответа от сервера должна сократиться минимум в два раза.

В моём случае на VPS с процессором Intel Xeon E5-2630 v2 @ 2.60 GHz и 8Gb DDR3-1866Mhz, с тюнингованными Web-серверами и СУБД, сервер отвечал в среднем за 2,6 секунды, что при норме в 0,2-0,3 секунды является очень высоким значением. После очистки базы данных с помощью Prestashop Cleaner, скорость ответа сервера снизилась до 1,5 секунд. Как выяснилось далее, то причиной лишних 1,1 секунды во времени отклика являются дублирующие запросы к базе данных от различных установленных модулей.

Отключаем и деинсталируем ненужные модули

Теперь тебе необходимо перейти в раздел админки «Модули» > «Модули и Сервисы» и выставить фильтр в «Установленные» и «Отключенные», то есть те модули, которые не используются вовсе, но так или иначе нагружают сайт своим присутствием в хуках.

Исправляем долгий ответ сервера на Prestashop 1.6

После появления списка можно смело деинсталировать каждый отключенный модуль в списке. Модуль удаляется из БД, но файлы модуля не удаляются, то есть при желании его можно установить заново.

Устанавливаем Prestashop Cache Manager

Следом тебе нужно установить кэширующий модуль, который ты можешь купить по этой ссылке за 99.99€, либо скачать модуль Prestashop Cleaner.

Логин и пароль на загрузку: okatiev.ru

Затем перейди в раздел админки «Модули» > «Модули и Сервисы», нажми «Добавить модуль», выбери купленный/скачанный файл модуля Prestashop Cache Manager и нажми кнопку «Загрузить».

Исправляем долгий ответ сервера на Prestashop 1.6

После этого переходи к настройке модуля Cache Manager.

Исправляем долгий ответ сервера на Prestashop 1.6

Модуль может попросить тебя включить Smarty-кэш и отключить использование библиотеки HTML-Minify. Всё это ты можешь сделать в админке в меню «Конфигурация» > «Результат» как показано на скриншотах ниже:

Исправляем долгий ответ сервера на Prestashop 1.6 Исправляем долгий ответ сервера на Prestashop 1.6 Исправляем долгий ответ сервера на Prestashop 1.6
Для меня это оптимальные настройки, которые обеспечивают максимальное быстродействие сайта.

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

Исправляем долгий ответ сервера на Prestashop 1.6 Исправляем долгий ответ сервера на Prestashop 1.6 Исправляем долгий ответ сервера на Prestashop 1.6 Исправляем долгий ответ сервера на Prestashop 1.6
С настройками поэксперементируй самостоятельно, особенно с настройками кэширования установленных модулей.

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

Для этого используй панель управления хостингом или правку файла /crontab напрямую через SSH-терминал (Putty — для Windows, Терминал — для Linux и OS X).

После подключения к серверу через SSH или sFTP, тебе необходимо добавить строку вида:

59 *    * * *   root    /usr/bin/wget -O - -q -t 1 'https://site.ru/modules/pm_cachemanager/cron.php?secure_key=hHKy3f6wN0zcUMUB' > /dev/null 2>&1

в конец файла «/etc/crontab». Чтобы отредактировать его используй команды

nano /etc/crontab

или

vi /etc/crontab
Исправляем долгий ответ сервера на Prestashop 1.6
Сохраняем изменения и закрываем SSH-клиент

Где https://site.ru/modules/pm_cachemanager/cron.php?secure_key=hHKy3f6wN0zcUMUB строка, взятая тобой из вкладки модуля «Crontab» в админке сайта.

После проведения всех манипуляций, которые приведены выше, я рекомендую очистить Smarty-кэш в админке в меню «Конфигурация» > «Результат» > «Очистить кэш»

Исправляем долгий ответ сервера на Prestashop 1.6

Затем очистить кэш модуля Cache Manager с помощью кнопки в боковом меню админки или во вкладке «Maintenance» на странице модуля Cache Manager.

Исправляем долгий ответ сервера на Prestashop 1.6

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

Исправляем долгий ответ сервера на Prestashop 1.6
Как видно, скорость ответа сервера сократилось у меня практически в 10 раз.

Выводы

Исправляем долгий ответ сервера на Prestashop 1.6

Какие выводы можно сделать? О, их можно сделать целую кучу, но мы сделаем лишь пару основных.

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

В сумме мы имеем снижение скорости ответа сервера примерно в 10 раз: с 2,6 секунды до 0,28 секунд, что положительно влияет на отношение поисковых систем к нашему интернет-магазину, а также на отношение наших клиентов, которые получают теперь информацию с сайта в 10 раз быстрее чем раньше.

Надеюсь, что эта информация оказалась для тебя полезной! Если у тебя возникли вопросы, обязательно напиши их в комментариях ниже, я с удовольствием на них отвечу! До связи!

Плюсануть
Поделиться
Отправить
Запинить
Понравился этот пост? Поделись им в соцсети!
Популярное
1 комментарий
tim
tim

25 июня 2018, 00:59

Доброго дня! У меня на сайте почему то не все срабатывает как вы написали. У меня раз двадцать пояляется 504 get out а зелененькой не появлется. И как тут скачать файл тоже неясно https://okatiev.ru/files/locked/pm_cachemanager.zip

Александр Окатьев

Эта операция ресурсоемкая и может занимать несколько минут, в зависимости от вычислительной мощности сервера и его настроек. Вам нужно увеличить таймауты в настройках nginx и/или apache2.

Логин/пароль на загрузку файла: okatiev.ru

UPD: В конце этой статьи описано в каких файлах необходимо увеличить таймауты.

Ваш комментарий
адрес не будет опубликован
HTML-код не интерпретируется

Ctrl + Enter