Мы предоставляем услугу ИТ аудита «1С-Битрикс» –сервис аудита производительности сайтов. Наша команда провела множество аудитов и анализов эффективности сайтов. Зачастую, по итогам проверок все проблемы типичны. Кроме анализа настроек и конфигураций, мы анализируем код. Изучаем варианты его изменения для повышения скорости.

Производительность сайта зависит:

  • от оптимальности настроек;
  • от уровня хостинга.

Анализ производительности сайта включает:

  • проверку верного алгоритма работы сервера;
  • проверку верной настройки сервера и мощностей;
  • анализ скорости загрузки проекта в браузере.

Аудит конфигурации сервера

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

  • где расположен сайт – на виртуальном хостинге или виртуальной машине. Мы рекомендуем, при наличии возможностей, выделенный сервер. Разница в стоимости между виртуальным и реальным выделенным сервером может быть очень большой, но, если речь идет о серьезном проекте, нужно оценивать риски.
  • версии программного обеспечения. Если код оптимален, то переход на более новые версии ускорит время генерации страниц на 30%.
  • оптимизатор PHP кода должен быть установлен
  • отладчик XDebug должен быть отключен, потому что предназначен для отладки кода и гораздо замедляет время выполнения кода
  • проверка engine таблиц в MySQL. Для типовых задач мы рекомендуем использовать InnoDB и его походные вместо My ISAM, который часто подвержен блокировкам на уровне таблицы и очень чувствителен к падениям MySQL.
  • правильность настроек InnoDB. Речь идет о настройке размера buffer pool.
  • оценка работы сервера и использования SWAP-A.  Оптимизация будет неэффективна, если сервер не справляется с нагрузкой от большого количества запросов или процессам не хватает памяти, и они частично выгружены в swap. Процессы очень динамично используют оперативную память и в случае выгрузки на диск – дисковая подсистема сервера резко достигает своего предела и сайт «зависает». Поэтому необходим мониторинг сервера для выявления причин «зависания».

Аудит кода объекта

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

В инструменте 1С-Битрикс мы используем монитор производительности для первичной проверки. Для его включения на административной панели кликаем «Меню» – «Настройки» – «Панель производительности» – «Тестировать производительность». По завершению процесса на панельке «Разработка» появятся данные со статистикой посещенных страниц и  временем их отклика.аудит производительности 1С Битрикс

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

Для запуска отладки необходимо в панели администратора выбрать пункт «Отладка» и в меню выбрать «Суммарная статистика». В случае надобности проверки работы кэша, поставить галочку «Детальная статистика кэша».производительность bitrix

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

Давайте изучим режим «Отладки» и модуля профилирования XHProf, позволяющего отследить время выполнения PHP скрипта и вложенных функций на примере странички каталога. Рассмотрим проблему: при включенном кэшировании компонент Bitrix:catalog.selection медленно выполняется.оптимизация 1С bitrix

  1. Заметно, что компонент не кэшируется и выполнение очень замедлено.
  2. Для отладки PHP воспользуемся XHProf.ускорение битрикс
  3. Обновляем страничку для сбора данных утилитой XHProf
  4. Открывает страницу с данными XHProfаудит 1с bitrix скорость
  5. Выполнение шаблона компонента Bitrix:catalog.selection происходит за 1,5 сек. И это большая часть времени генерации всей страницы.
    Ищем подключение необходимого компонента Bitrix:catalog.selection. Открываем и смотрим.ускорение битрикс
  6. Смотрим далее и видим вызов скрипта result_modifier.php. Если пройти дальше, то можно увидеть пользовательскую функцию, в которой исполняются запросы:

анализ работы битрикс

Приходим к выводу, что причиной медленной загрузки страницы является result_modifier.php.

Айдит конфигураци «1С-Битрикс»

  •  Некорректная структура инфоблоков. Наиболее популярная проблема. Характеризуется тем, что все товары и их свойства перемешаны в пределах одного блока. Поэтому выборка будет осуществляться медленно.
  • Самописные компоненты. При использовании сторонних компонентов нужно их изучать, т.к. они не учитывают возможности 1С –Битрикс и могут значительно увеличивать время исполнения.
  • Проблемы с внешними сервисами. Клиенты часто используют такие сервисы как обновление курса валют либо стоимость доставки товаров. Увы, многие внешние сервисы отвечают долго.  Один из вариантов решения проблемы – загрузка данных через Cron.
  • Проблемы с фасетными индексами. Этот элемент обязательно необходимо использовать т.к. он значительно снижает нагрузку на процессор и время загрузки страниц.
  • Ошибки применения API 1С-Битрикс. 1С-Битрикс имеет набор оптимальных функций для нагрузки на сервер, нужно лишь знать, как их применять. Популярной ошибкой оказалось получение перечня товаров и подсчет их количества по имеющимся свойствам. У API 1с-Битрикс для этого есть функционал.
  • Проблемы с генерацией меню. В масштабных проектах формирование меню может быть проблемным из-за подсчета количества компонентов в секциях. Мы не рекомендуем подобное решение для оптимизации скорости.
  • Включенный антивирус. Антивирус – очень эффективный инструмент, но обычно оставляют активным только проактивную защиту. Веб- антивирус в выключенном состоянии ускоряет генерацию страницы на 150-200 мс.

Загрузка станиц при включенном антивирусе:ускорение 1c-bitrix

С выключенным антивирусомпроизводительность битрикс антивирус

  • Установленный модуль компрессии. Рекомендуем отключать, если это возможно.
  • Проверка кода на наличие «Агентов на хитах». Мы не рекомендуем их использовать. При проверке кода, обязательно сначала проверяется не включены ли агенты на хитах.
  • Неверно настроенное кеширование. При проверках, мы сталкивались с ситуациями, когда кеширование сначала отключили, затем провели отладку и забыли включить. Пожалуйста, не забывайте включать.
  • Проблемы с композитным кэшем. Наиболее популярная ошибка – это установленный лимит на кэш в 100 Мб, хотя этого недостаточно.

Аудит клиентского сегмента

  • Изображения без оптимизации. Мы не рекомендуем загружать ёмкие изображения. Подключите автоматические инструменты для оптимизации изображений.
  • Проблемы с JS/CSS файлами. Здесь лидирует два вида ошибок: подключение JS/CSS файлов нестандартным для 1С-Битрикс способом и использование необъединенных JS/CSS файлов.
  • Отдача статики WEB сервером Apache. Часто наблюдается, что статические файлы отдаются через Apache, с которого обычно раздается динамика. И каждый запрос создает нагрузку на процессор. Мы рекомендуем раздачу статистики через nginx.
  • Отсутствие компрессии на уровне WEB –сервера. Статику необходимо отдавать с gzip компрессией.

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

Нужна помощь в аудите и оптимизации производительноcти Битрикс, обращайтесь, [email protected]