Как ускорить cs cart

Как ускорить cs cart

2. Оптимизация изображений

При загрузке в интернет-магазин изображений, обращайте внимание на размер и формат изображения. Слишком большие изображения долго загружаются и замедляют загрузку страницы в общем и целом.

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

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

3. Общие рекомендации

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

3.4. Не рекомендуется по умолчанию на одной странице выводить более 50 товаров одновременно. Чем больше товаров на странице будет отображаться по умолчанию, тем большее количество запросов к СуБД MySQL и соответственно затрачивается больше времени на окрытие страницы.

3.5. Не рекомендуется подключать множество сторонних виджетов и помощников: так называемых обратных звонков, чатов, сборы метрик и т.д., т.к те javascript и прочие ресурсы, которые будут подгружаться со стороннего сервера, могут так же повлиять на скорость отображения страницы веб-сайта.

3.7. С целью снижения бесполезной нагрузки на сайт, важно ограничивать доступ для поисковых роботов и других ботов к тем страницам, которые не нуждаются в поиске, а так же устанавливать с помощью параметра crawl-delay в robots.txt таймаут для поисковых ботов, которые обращаются к страницам сайта.

3.8 Если для вас очевидно, что интернет-магазин имеет достаточно большое количество товаров (более 1000), он вполне себе посещаем и от его стабильной работы напрямую зависит доход компании, заранее планируйте бюджет на будещее для возможной аренды выделенного или виртуального сервера с большим запасом ресурсов. Это, в первую очередь, в интересах бизнесс-процессов магазина. Не один тариф виртуальныого хостинга в 99% случаях не сможет позволить полноценно использовать большое количество ресурсов при большом количестве товаров в интернет-магазине на cs-cart.

Источник

Как без особых технических навыков увеличить производительность CS-Cart и CS-Cart для маркетплейсов

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

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

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

1. Обновите CS-Cart или Multi-Vendor, все темы и модули

Обновление ядра CS-Cart, тем и модулей важно, потому что в новых версиях есть патчи производительности, патчи для улучшения и оптимизации процессов работы и для исправления багов и уязвимостей.

2. Обновите версию PHP и используйте его возможности

Найдите максимальную версию PHP, поддерживаемую вашей версией CS-Cart или Multi-Vendor.

Нагрузочные тесты, проведенные нами на последней версии CS-Cart и дефолтной теме без сторонних модулей, показывают, что производительность проекта можно увеличить, обновив версию PHP.

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

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

Используйте OPcache

Как работает PHP приложение? PHP открывает файлы с кодом, собирает их воедино, анализирует, токенизирует и компилирует, а затем выполняет. Так как файлов много, процесс их открытия, чтения и компиляции может отнимать значительные ресурсы. Но поскольку файлы меняются не так часто, то компиляцию каждый раз можно и не делать. Оптимальнее ее совершить один раз, закэшировать результат и после этого обращаться к нему.

Как раз это и делает модуль OPcache. Он сохраняет результат компиляции в кэш, чтобы потом работать с ним, а не генерировать его снова и снова. Таким образом, это ускоряет работу PHP за счет отсутствия процесса компиляции. А когда ваш код изменится, модуль OPcache сам инвалидирует кэш и совершит компиляцию снова. И это без необходимости его настраивать!

Используйте FastCGI

FastCGI — это один из вариантов подключения PHP к веб-серверу. PHP-FPM (FastCGI контейнер для PHP) и NGINX по умолчанию поддерживают совместную работу и сконфигурированы для максимальной производительности друг с другом без дополнительных прослоек.

Ограничьте PHP и изучите каждый параметр, который планируете менять

Да, как это странно ни звучит, но выставлять максимальные настройки для PHP — не всегда хорошее решение. Если вы выделяете больше памяти или не ограничиваете время выполнения каких-либо процессов, то другим компонентам системы может не хватить ресурсов, или они будут конкурировать друг с другом, пока за ними не придет OOM Killer 🙂

max_execution_time: 60

Мы не рекомендуем выставлять время работы скрипта больше 1 минуты для обычных процессов. Но такие процессы как импорты, экспорты и обновления CS-Cart бывают долгими и для этих процессов иногда может потребоваться увеличение “таймаутов” на стороне PHP и MySQL.

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

memory_limit: «512M»

Не стоит устанавливать этот параметр слишком большим, так как OOM Killer будет в этом случае приходить за всем PHP сразу. И не забывайте, что у вас есть еще MySQL и какие-то еще компоненты – им тоже нужна память, а еще самой системе для работы нужна память.

Увеличивайте memory_limit только в крайних случаях.

3. Обновите и оптимизируйте базу данных (MySQL)

Переконвертируйте все таблицы из MyISAM в InnoDB

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

Вот главные отличия InnoDB и MyISAM:

Оптимизируйте настройки MySQL

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

wait_timeout: 60

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

Проверьте конфигурацию при помощи MySQLtuner

4. Увеличьте мощности сервера

Не все проблемы с производительностью сайта можно решить увеличением параметров конфигурационных файлов PHP, MySQL или обновлением серверного ПО. Иногда наступает момент когда нужно задуматься о повышении мощности сервера или тарифного плана у вашего хостера. Это может быть установка дополнительных аддонов, увеличение количества товаров или просто рост количества посетителей вашего сайта.

Также мы рекомендуем повышать мощности сервера на периоды распродаж и маркетинговых акций.

5. Используйте HTTP/2 соединение (и TLS 1.3)

Производительность в данном случае идет рядом с безопасностью. Протокол HTTP/2 (который доступен только для https соединений) уже значительно оптимизирован по сравнению с HTTP 1.1, так что простое внедрение этой спецификации способно улучшить производительность вашего проекта.

6. Твики и опции CS-Cart

В случае, если после внесения изменений у вас стал недоступен проект — отмените изменения и обратитесь к технической поддержке CS-Cart и вашему хостеру. Они помогут вам с настройкой.

Используйте Imagick

GD и Imagick — это два независимых друг от друга расширения PHP для работы с графикой. Оба модуля очень схожи, однако Imagick дает более качественный результат при создании миниатюр изображений. При этом используя меньше памяти.

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Также обратите внимание на то, что если у вас в файле config.local.php напротив image_resize_lib стоит auto, то если у вас установлен imagic, то он будет использоваться по умолчанию.

Включите APCu для кэша и Redis для хранения сессий

Мы рекомендуем использовать APCu для хранения кэша в CS-Cart и Redis для хранения сессий. Обратите внимание на то, что подобное разделение снизит нагрузку на базу данных и диск, но добавит возможную точку отказа в виде дополнительного сервиса, работу которого нужно отслеживать тоже. А перенос кэша в APCu увеличит хотелки PHP 🙂

Включение этих параметров в конфигурационном файле требует преднастроенных APCu в PHP 7.0+ и Redis на вашем сервере. Перед изменением конфигурационного файла убедитесь что APCu и Redis у вас доступны для использования на сервере. В случае если вы не уверены или не знаете точно, обратитесь к системному администратору или хостеру для их настройки.

Для бэкапов используйте mysqldump

Mysqldump — это серверное расширение, которое установлено на всех современных хостингах, и все администраторы рекомендуют использовать его для создания бэкапов базы данных. Для бэкапов используйте mysqldump.

Для того, чтобы включить его, добавьте параметр backup_db_mysqldump со значением true в массив $config[‘tweaks’] или измените в файле config.local.php значение твика на true, как показано на скриншоте:

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Добавьте блокировку бэкэнда для процессов генерации кэша

В последних версиях CS-Cart появилась возможность блокировать бэкенд на генерацию кэша для пользователей, если процесс генерации уже идет. Включить его можно через параметр $config[‘lock_backend’] = ‘database’; в файле config.local.php.

7. Как найти и исправить проблемы производительности CS-Cart без навыков программирования

Советы по быстрой оптимизации и поиску проблем с производительностью вашего проекта на CS-Cart и CS-Cart Multi-Vendor без навыков программирования описаны здесь.

А так же мы рассказывали в статье о том, что влияет на скорость работы сайта вцелом в этой статье с метриками, на которые можно и нужно обращать внимание.

Источник

Как сделать CS-Cart быстрее? Советы от Alt-team

В Alt-team есть традиция обучать своих коллег тому, что умеешь сам. Раз в месяц мы проводим творческие ITишные встречи, где один и программистов делиться своим опытом в разработке.

В августе 2019 очень интересный доклад на обозрение наших коллег представил один из наших ведущих разработчиков Евгений Шахин. Евгений рассказывал, как сделать CS-Cart магазин быстрее, какой сервер нужно использовать и от чего зависит скорость загрузки страниц CS-Cart движка.

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Евгений работает с CS-Cart платформой около 7 лет. К нам он пришел талантливым студентом и уже через пару месяцев работы в компании, Евгению стали доверять масштабные проекты. Ежегодно Евгений успешно проходит официальный тест от CS-Cart, чем подтверждает свою квалификацию.

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Итак, доклад Жени был настолько интересный с практической точки зрения, что мы решили на его основе написать статью и поделиться полезными знаниями по оптимизации скорости CS-Cart.

Сразу отмечу, что мы не будем говорить о результатах Google Page Speed Insights. Данный сервис, в основном, проверяет вёрстку. МЫ поговорим о проблемах в настройке сервера, работе MySQL запросов и о методах, как сделать загрузку страниц CS-Cart быстрее.

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

От чего зависит скорость работы CS-Cart?

Обычно, мы встречали 3 варианта веб серверов:

Согласно W3Tech.com, от 14 января, 2019, около 85% пользователей используют либо Apache сервер, либо Nginx.При этом Apache все же популярнее Nginx решения.

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Давайте поговорим о разнице между Apache и Nginx. Как вы думаете, что быстрее работает? Nginx быстрее при определенных обстоятельствах.

только статический. Для динамического нужна помощь (php-fpm, apache+mod_php)

Принимая во внимание все аспекты веб серверов, мы пришли к выводу, что наиболее лучший вариант для высокой производительности CS-Cart — это Nginx в связке с php-fpm, но этот вариант требует перенастройки config файла.

В случае, если у вас уже есть Apache+mod_php и вы хотите увеличь производительность CS-Cart, стоит ли вам переходить на сервер Nginx? Если честно, то стоит это делать, если:

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

Но, наш совет, все же использовать Nginx+php-fpm на CS-Cart проектах.

Что насчет PHP?

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Коротко, используйте PHP 7 + модуль OPCache!

По умолчанию, CS-Cart использует OPCache модуль, но иногда он отключен! Проверьте это!

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

ВНИМАНИЕ! Поддержка PHP 7.3. начинается только в CS-Cart 4.9. версии и выше.

Вы должны осознавать, что сам по себе PHP не является узким местом в производительности CS-Cart. Да, несомненно, что PHP 7 быстрее PHP 5, но версия PHP не оказывает такого влияния на скорость загрузки страниц CS-Cart, как MySQL запросы.

Итак, мы переходим к самой главной части в теме Как увеличить скорость работы CS-Cart — MySQL запросы!

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

Почему скорость CS-Cart падает, как только вы начинаете пользоваться платформой?

Итак, как увеличить скорость работы CS-Cart с помощью работы над MySQL запросами и блокировками?

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Лечение причин.

Лечение симптомов.

Блокировки делятся на 2 типа: блокировки на чтение и блокировки на запись.

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

По умолчанию, CS-Cart использует MyISAM систему хранения данных в СУБД MySQL. Данная система хоть и стара, но отлично и стабильно работает. Единственный огромный минус — это блокировка всей таблицы. Чтобы решить данную проблему, была изобретена другая система хранения данный — InnoDB. InnoDB использует более совершенный алгоритм блокировок. Система блокирует не всю таблицу, а только используемую строку.

Главная проблема CS-Cart — это использование системы MyISAM по умолчанию, что очень часто приводит к блокировкам таблиц полностью.

Примеры блокировок таблиц.

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Лечение причин.

Конвертация таблиц в InnoDB или XtraDB (форк InnoDB от Percona) и сопутствующее редактирование конфига MySQL (установить innodb_buffer_pool_size и innodb_log_buffer_size в соответствии c RAM).

Лечение симптомов.

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

MySQL. Конфигурационный файл.

Что можно поменять?

Как поменять?

Когда менять?

О кэшировании!

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Дополнительные программы

Как тестировать сайт на предмет проблем со скоростью?

1. Необходимо включить дебагер!

В файле config.local.php или local_conf.php вставить строчку:

В этом случае дебагер будет работать всегда и везде. Отключить его можно, заменив true на false, или совсем убрав определение константы.

Так дебагер включится только для данной сессии. Чтобы выключить его, наведите курсор на логотип CS-Cart на панели дебагера вверху. Чуть левее логотипа появится кнопка выключения.

2. С помощью ресурса loaddy.com

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Если нужна помощь для решения проблем со скоростью CS-Cart, то мы с удовольствием поможем!

Источник

Оптимизация скорости работы CS-Cart

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

В данном обзоре я рассмотрю вопросы, которые в последнее время стали волновать очень большое количество наших клиентов. Все они так или иначе касаются быстродействия CS-Cart.

1. Почему CS-Cart тормозит?

2. Как вывести магазин в зеленую зону Google PageSpeed Insights?

3. Как выбрать сервер для CS-Cart?

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

Если кто-то не хочет вникать в детали, то можно перейти сразу в конец статьи и увидеть исчерпывающие, лаконичные ответы на обозначенные вопросы.

С теми же, кто хочет расширить диапазон своих знаний, давайте продолжим.

Почему CS-Cart тормозит?

Итак, что влияет на скорость работы интернет-магазина? Давайте рассмотрим простую схему.

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

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

Ваш потенциальный покупатель садится за компьютер (или берет в руки телефон) и набирает в строке браузера адрес интернет-магазина. Браузер в свою очередь обращается к серверу, где установлен CS-Cart (для тех, кто не знает, CS-Cart работает на стеке технологий HTML/CSS/Less, JavaScript/Jquery, Smarty, PHP, MySQL). Таким образом, сервер начинает обрабатывать PHP файл, который обращается к другим PHP файлам, подключает Smarty, LESS, исполняет файлы этих библиотек, посылает определенные запросы в MySQL, получает ответы, обрабатывает их, компилирует конечный результат, и отправляет обратно браузеру. Браузер обрабатывает полученный ответ и отображает результат покупателю.

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

Так что же влияет на скорость работы интернет-магазина?

1.Скорость соединения. Т.е. скорость с которой браузер может взаимодействовать с сервером.

2.Скорость обработки браузером информации.

Которая складывается из:

2.1. Скорости выполнения JavaScript.

2.2. Объема графики на сайте.

2.3. Количества выводимой информации на сайте.

3.Скорость обработки информации сервером.

Которая в свою очередь зависит от:

3.1. Мощности сервера.

3.2. Конфигурации программного обеспечения сервера.

3.3. Скорости исполнения PHP файлов.

3.4. Скорости исполнения Smarty файлов.

3.5. Скорости выполнения MySQL запросов.

3.6. Количества одновременных запросов на сервер.

Теперь, чуть подробнее.

Скорость соединения

Сюда я включаю скорость взаимодействия сервера с клиентом. Время от времени к нам обращаются клиенты, сервера которых находятся на другом конце света. Как правило это не вызывает никаких проблем, однако есть хостинг провайдеры, до которых любой запрос из России идет очень долго и не менее долго приходит от них ответ. Совсем недавно была подобная ситуация с сервером, который располагался всего в тысячи километров от нас, в Москве. Не будем углубляться в детали почему это происходило, просто помните, что выбирая сервер нужно учитывать территориальность ваших клиентов, их удаленность от сервера и скорость, с которой сервер будет отвечать на их запросы.

Скорость обработки браузером информации

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

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

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

* Часто встречающиеся проблемы

Изображения заведомо большего размера

Как я упоминал выше, очень частой причиной медленной скорости сайта является использование изображений больших размеров. Однако есть более тонкая ситуация, когда проблему не видно сразу. Т.е. вы увидите маленькое изображение, однако в действительности оно огромных размеров и просто уменьшено за счет свойств тега html.

В данном примере, на страницу подгружаются изображения размеров 3615px на 3615px.

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Тема с неоптимизированным JavaScript

Очень внимательно относитесь к теме, которую собираетесь приобрести. Перед покупкой протестируйте ее в Google PageSpeed Insights и проверьте результаты. Если результаты не входят в зеленую зону, то подумайте еще раз перед ее приобретением. Никакая красота не должна конкурировать с юзабилити и производительностью. Помните, что мы живем в быстро развивающемся информационном обществе, где люди практически полностью утратили способность ждать, по крайней мере загрузки страницы в своем браузере.

Скорость обработки информации сервером

На обсуждении этого вопроса мы остановимся чуть подробнее.

Любое программное обеспечение работает используя ресурсы железа. Если рассматривать версии CS-Cart 4.4.x, то архитекторы CS-Cart отлично потрудились над оптимизацией продукта, и он работает гораздо быстрее своих предшественников. PHP, MySQL, Smarty в нем уже великолепно оптимизированы, и если вы хотите получить движок с тем мощным функционалом, который предлагается из коробки, то улучшить его будет крайне проблематично и не оправдает тех затрат, которые для этого потребуются.

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

* Часто встречающиеся проблемы

Команды по расписанию

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

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

Автоматическая очистка кеша

Как вы видели из результатов тестирования, страницы без кеширования тратят намного больше ресурсов, чем закешированные. И само время загрузки страниц также существенно отличается. В CS-Cart есть замечательный параметр, который помогает проводить отладку магазина перед запуском, однако сильно грузит магазин. Поэтому всегда проверяйте его состояние. Им можно управлять на странице Панель администрирования > Дизайн > Темы.

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

По умолчанию, строки кода, отвечающие за включение данного режима расположены и закомментированы в файле config.local.php, однако бывает, что нерадивые разработчики используют данный код в самых непредсказуемых местах.

Излюбленные места для добавления режима разработчика:

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

Модули, тема, третьесторонние модификации

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

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

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

Теперь рассмотрим вопрос мощности и конфигурации программного обеспечения сервера.

В документации CS-Cart заявлено, что для работы стандартного интернет-магазина на базе CS-Cart 4.1.x с посещаемостью 50 посетителей в час достаточно одноядерного процессора 2.4 ГГц и 1024 Мб оперативной памяти.

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Я решил проверить справедливо ли это для 4.4.x Мы приобрели виртуальный сервер с одним ядром процессора Intel Xeon E5620, 2.4Ghz и 1024 Mb оперативной памяти. На сервер установили Ubuntu 16.04 x64, использовали PHP7, комбинацию apache + Nginx и ZendOpcache. Не ради рекламы, но для того, чтобы показать каким образом далее проходило мое взаимодействие со службой поддержки хостинга, скажу, что сервер был заказан у компании Айхор Хостинг (см. раздел “Как вывести магазин в зеленую зону Google Page Insights?”).

Далее я установил на этот сервер CS-Cart 4.4.2 международная сборка и провел следующий эксперимент.

Я запустил команду top из консоли и начал смотреть, как загружают сервер те или иные процессы во время работы с магазином. Главным образом нас должны интересовать процессы httpd, nginx и mysqld. Nginx и mysql потребляли незначительное количество ресурсов, поэтому я не стал акцентировать на них внимание и в таблице привел результаты работы httpd, который главным образом грузил центральный процессор.

Вот результаты, которые я получил.

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

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

Что же будет происходить с интернет-магазином, если на нем будут работать сразу несколько человек? В теории, каждый поток процессора будет обрабатывать запросы пользователей один за другим в порядке очереди. Это можно сравнить с полосами движения по мосту. Где полоса движения это поток ядра процессора, а автомобили это сами процессы. В ситуациях, когда идет плотный поток автомобилей, образуется пробка и некоторым автомобилям приходиться ждать момента, когда они смогут въехать на мост.

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Чтобы посмотреть, как это работает на практике, можно воспользоваться утилитой Apache Benchmark. Данная утилита позволяет послать на сервер несколько одновременных запросов и получить некоторую полезную информацию о результатах их обработки. Кстати, еще в далеком 2010 году, я написал подробную статью на эту тему. Она так и называется “О чём говорит Apache Benchmark?”. Для тех кому интересно, можете загуглить.

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

Данным запросом мы имитируем 10 одновременных запросов к главной странице интернет-магазина. И выполняем данную имитацию 10 раз.

Так, при использовании магазина через браузер, при такой нагрузке, главная страница для меня загружалась около 2.5 секунд. По карточке товара результат получился 3.5 секунды.

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Кроме фактического тестирования, у нас есть данные, предоставленные Apache Benchmark. Они показывают нам, что в результате 10 тестов, в которых запускалось 10 запросов одновременно было успешно выполнено все 100. Среднее время обработки запроса составило 1.496 секунды. Самый долгий запрос обрабатывался 1.713 секунд, а самый быстрый 1.366 секунд.

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Если переводить на язык посетителей магазина, то один человек будет ждать 1.366 секунд, а другой 1.733 секунд, пока загрузится страница. Не забывайте, что фактически мы ждали 2.5 секунды. Видимо это связано с тем, что ab не учитывает скорость обработки и вывода браузером информации.

* Важно

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

Для наглядности я также выполнил аналогичные действия на нашем тестовом сервере с 4-х ядерном процессором Intel Xeon D 1520, 8-ю потоками по 2.8Ghz и 32 Gb оперативной памяти. На сервере установлена CentOS 6.7, PHP5, Apache + Nginx и ZendOpcache. Вот какие результаты я получил с помощью команды top:

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Результат ab тестирования:

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Фактически, в процессе тестирования, главная страница загрузилась за 1.13 секунды:

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Как видите скорость загрузки страниц на нашем корпоративном тестовом сервере значительно выше. Однако это связано не только мощностью и типом процессора, но и со спецификой настройки серверного программного обеспечения. Об этом будет подробнее написано ниже.

Как вывести магазин в зеленую зону Google PageSpeed Insights?

Результаты моих экспериментов показали, что несмотря на хорошую скорость загрузки при использовании одноядерного процессора 2.4Ghz, Google Page Insights показывает красную зону:

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

В отличии от магазина, установленного на 4-х ядерном сервере.

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Но как вывести магазин в зеленую зону с одноядерным сервером 2.4Ghz?

Удивленный результатами, я начал просматривать рекомендации Google.

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

Далее, я написал в службу поддержки Ахор Хостинг с просьбой выполнить рекомендации Google. Взяв с меня 1000 рублей, они написали, что выполнили оптимизацию сервера. Я решил сразу же проверить результат и получил заветную зеленую зону:

Как ускорить cs cart. Смотреть фото Как ускорить cs cart. Смотреть картинку Как ускорить cs cart. Картинка про Как ускорить cs cart. Фото Как ускорить cs cart

В итоге мы получили следующую конфигурацию сервера:

Более подробную конфигурацию вы можете получить по ссылке.

Как выбрать сервер?

Для того, чтобы выбрать сервер нужно иметь следующую информацию:

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

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

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

В заключение хочу рассказать одну историю, которая произошла в 2016 году. Один наш постоянный клиент жаловался на медленную скорость интернет-магазина. После исследования стало ясно, что серверу недостаточно ресурсов: процессорных мощностей и дискового пространства. Магазин оптовый и заказы на нем оформляются с количеством товаров в размере 100-200 наименований. А посетителей на сайте бывает до 50 человек одновременно. Помимо этого магазин работает практически без кеша, так каждый час происходит выгрузка новых товар и обновление остатков. Клиенту было предложено провести полную оптимизацию магазина и перевести сайт на другой более мощный сервер, даже два сервера. Один для базы данных, а другой для приложений. Процедура достаточно дорогостоящая и клиент каждый раз откладывал принятие решения по данной работе и просто просил удалить ненужные файлы, перезапустить сервис и совершить прочие действия, которые откладывали неизбежное. Спустя несколько месяцев удалять стало нечего, перезагрузка сервисов и прочие временные решения, которые помогали ранее, перестали работать. Магазин просто встал. Разумеется на этот раз клиент согласился заплатить любые деньги лишь бы магазин работал и привести его в порядок на будущее. Процедура оптимизации интернет-магазина требовала минимум месяц непрестанной работы, чтобы тщательно пересмотреть весь код и продумать новые алгоритмы его более быстрой работы. Нам удалось оживить магазин клиента и продержать его в полурабочем состоянии на протяжении этого времени и в конечном итоге все закончилось хорошо. А после оптимизации клиент остался более чем доволен.

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

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

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

Почему CS-Cart тормозит?

Как вывести магазин в зеленую зону Google PageSpeed Insights?

Как выбрать сервер?

Имея эти данные и результаты экспериментов с Apache Benchmark, которые мы получили выше, можно ориентировочно подобрать сервер. Если для Вас это все еще затруднительно, то лучше передать упомянутые данные разработчику и попросить проконсультировать Вас.

Если говорить о стандартном CS-Cart 4.4.x и взять в расчет, что загрузка страницы за 2-3 секунды это удовлетворительный результат, то:

для 12 одновременно пребывающих на сайте пользователей достаточно одноядерного сервера 2.4 Ghz, 1024 Mb оперативной памяти;

для 45 одновременно работающих на сервере пользователей, необходим сервер с 4 ядрами по 2.8 Ghz. 8 Gb оперативной памяти будет более чем достаточно;

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Метод обработки соединений с клиентами Отдаваемый контент
Apacheодин процесс ОС — один запросстатический и динамический (mod_php)
Nginxодин процесс ОС — много запросов