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

1. Оцените производительность

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

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

  • меньше 30 пунктов – забудьте про производительность и быструю загрузку страниц. Показателя «Очень быстро» вам не видать. Тормозить будет все!
  • от 30 до 60 – подойдет для небольших проектов (корпоративные сайты или интернет магазины с небольшим количеством товаров, небольшим количеством SKU и параметров в умном фильтре)
  • от 60 до 100 - конфигурация сервера приемлема, но не оптимальна. Подойдет для большинства проектов. Сайт работать будет, но не на сверхскоростях.
  • от 100 – вы молодцы: не поленились выбрать нормальную хостинг площадку! Админка летает, большие объемы данных из 1С выгружаются на ура, страницы отдаются быстро. Вы спите спокойно и даже не думаете писать в техподдерожку с жалобами на проблемы с загрузкой сайта, ни разу не видели ошибок Request timeout или 502 Bad Gateway.
  • 200 и выше – идеально!
Оценка производительности. Результаты испытания демо-стенда (тариф RED.Site-3, хостинг RedDock). Решение – универсальный интернет-магазин Аспро: Оптимус

Как протестировать сайт

Перейдите в панель производительности: Настройки → Производительность → Панель производительности. Нажмите кнопку «Тестирование производительности» и подождите несколько минут.

2. Перейдите на PHP7

3 декабря 2015 года вышла седьмая версия PHP. Она разрабатывалась с упором на увеличение производительности и уменьшение потребления памяти. Тесты это убедительно показывают (пример 1 , пример 2) - прирост производительности после перехода на новое ядро составляет от 40%!

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

3. Настройте кеширование

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

Как не надо:

  1. Оставлять настройки по умолчанию (120 секунд).
    Почему: первый посетитель заходит на страницу товара. Формируется кеш. Второй посетитель заходит на сайт через час. Кеш нужно формировать заново - его время истекло. В итоге кеш генерируется каждый раз при открытии страницы. Прироста производительности и скорости не просто нет - она даже снижается.
  2. Не соотносить время жизни кеша с частотой обновления данных на сайте и посещаемости сайта.
  3. Задавать для отдельных разделов (новости, статьи) огромное время кеширования.
Как надо - в зависимости от частоты обновления данных и посещаемости сайта:
  1. Цены на сайте обновляются вручную или несколько раз в неделю.
    Рекомендуемое время кеширования: не менее 172800 секунд (2 суток).
  2. Цены на сайте обновляются один раз в день, выгрузка из 1С или другой системы складского учета происходит ночью.
    Рекомендуемое время кеширования: 86400 секунд (1 сутки).
  3. Нечасто, но бывает: цены обновляются через реал-тайм обмен с 1С и бывает, что несколько раз в течение дня.
    Рекомендуемое время кеширования: 7200 секунд (2 часа).

4. Создайте фасетные индексы для умного фильтра

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

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

5. Проанализируйте и создайте индексы в базе данных

Индексы анализируются и создаются здесь: Настройки → Производительность → Индексы → Анализ индексов.

Нажмите на кнопку «Выполнить анализ собранных SQL запросов». Если появившиеся индикаторы зеленые, все в порядке: индексы созданы. Если индикаторы желтые, создайте их самостоятельно. Инструкция в мануалах 1С-Битрикс

6. Отключите неиспользуемые модули

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

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

  • AD/LDAP интеграция (ldap)
  • Push and Pull (pull)
  • Wiki (wiki)
  • А/B-тестирование (abtest)
  • Веб-аналитика (statistic)
  • Веб-кластер (cluster)
  • Веб-мессенджер (im)
  • Веб-сервисы (webservice)
  • Дизайнер бизнес-процессов (bizprocdesigner)
  • Документооборот (workflow)
  • Календарь событий (calendar)
  • Конструктор отчетов (report)
  • Менеджер идей (idea)
  • Мобильная платформа (mobileapp) - если не подключено мобильное приложение
  • Мобильное приложение для интернет-магазина (eshopapp) - если не подключено мобильное приложение
  • Обучение (learning)
  • Перевод (translate)
  • Почта (mail)
  • Техподдержка (support)
  • Универсальные списки (lists)
  • Управление масштабированием (scale).
Как это сделать: перейдите в настройки модулей Рабочий стол → Настройки → Настройки продукта → Модули и отключите лишние. Инструкция в базе знаний

7. Настройте CDN

Еще одна неоднозначная вещь, которая может как разогнать сайт, так и заставить его хорошенько притормозить. Что это такое?

«Модуль Ускорение сайта (CDN), который позволяет загружать весь статический контент вашего сайта (картинки, файлы стилей css, скрипты js) через сеть дистрибуции контента (Content Delivery Network или Content Distribution Network, CDN). Тем самым значительная часть ресурсов сайта загружается посетителем с ближайшего к нему сервера. Это позволяет увеличить скорость загрузки страниц до нескольких раз.

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

Настраивается CDN здесь: Настройки → Облако 1С-Битрикс → Ускорение сайта (CDN).

Практика

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

8. Включите объединение и сжатие CSS и JS-файлов

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

Как это все работает в деталях, читайте в нашей базе знаний . А оценить в количественных и качественных характеристиках эти «до» и «после» поможет старый добрый Google PageSpeed Insights.

Первая часть статьи – настройка веб окружения.

Разбираться как работать с новым разделом в продукте «Управление масштабированием » мы начнем с установки CentOS, и последующей установки «1С-Битрикс: Веб-окружение» 5.х »

Установка CentOS

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

Установка «1С-Битрикс: Веб-окружение» 5.х»

Операционная система установлена, давайте установим на нее веб-окружение 5.х:

В вашем браузере отключен JavaScript

Разберем ролик подробно:

  • Логинимся на сервер под административным аккаунтом
  • Для дальнейшей установки нам понадобится «wget », по умолчанию он не установлен, устанавливаем командой: yum install wget
  • Загружаем скрипт «веб-окружения » и запускаем его, следующими командами:

где порты обозначают и используются для следующих сервисов:

25 - smtp сервер 80 - http 443 - https 5222 - bitrix xmpp сервер 5223 - bitrix xmpp сервер по ssl 8890 - ntlm авторизация 8891 - ntlm авторизация по ssl 8893 - http сервер мгновенных сообщений 8894 - https сервер мгновенных сообщений
  • Порты прописаны, необходимо сохранить таблицу, следующей командой: service iptables save
  • Ну и в последнюю очередь устанавливаем оболочку mc , с помощью команды: yum install mc
  • Установки закончены, перезагружаем сервер, чтобы посмотреть, что все установилось корректно, видим на экране, что запущена машина: 5.0.37
При первом входе в виртуальную машину с логином «root » и паролем который вы задали, вам предложат сменить пароль у пользователя «bitrix » – от имени которого вы и продолжите работать с машиной.

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

Обновление «1С-Битрикс: Веб-окружение» 5.х»

Машина постоянно развивается и периодически ее следует обновлять, рассмотрим обновление через консоль управление машиной:

В вашем браузере отключен JavaScript

Разберем ролик подробно:

  • Логинимся на сервере под root , вводим пароль.
  • Попадаем в меню создания пула (pool) серверов, жмем 1 , для создания. Видим что пул (pool) создан, жмем Enter для возврата в меню – данное меню появляется если вы не создавали пул (pool). Если пул (pool) был создан ранее, данный шаг пропускаем.
  • Далее нам нужно найти пункт обновления, для этого переходим в другое меню, выбрав 1 .
  • В открывшемся меню видим пункт Update , под пунктом 4 , выбираем его.
  • Запускается Update , вам нужно ввести имя хоста, у меня оно server1 , и подтвердить ваше решение на Update , набрав Y
  • Мы видим, запуск задания «Start job », нажав Enter возвращаемся в меню.
  • Запущенные задания можно смотреть через пункт меню 5 , входим в него.
  • Появилось небольшое меню и список, где показаны запущенные задания.
  • Выбираем пункт меню 1 , что бы увидеть запущенные задания
  • Видим наше задание и статус выполнения, возвращаемся нажав 0
  • Вернувшись мы видим, что задание уже выполнено и получило статус «finished », можно выбрав пункт 0 , выходить из этого меню.
  • В таблице над меню видим, что веб-окружение стало версии 5.0.44
  • Выходим из меню, выбрав пункт 0
  • Покидаем root, набрав команду exit
  • Видим, что и тут поменялась версия веб-окружения на 5.0.44
Настройка Времени и Тайм зоны

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

Дата и время на сервере это не одна конкретная дата и время, это фактически три различных даты и три различных времени со своими часовыми поясами.

Какие три места:

  • Время сервера
  • Время PHP
  • Время MySQL
Смена происходит через пункт меню веб-окружения, и меняет дату и время, в трех местах сразу, это очень важный момент, что все три места работают с одинаковыми параметрами времени и даты.

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

В вашем браузере отключен JavaScript

Разберем ролик подробно:

  • Подключаемся к нашему серверу с правами root
  • В основном меню выбираем пункт 1
  • В открывшемся меню выбираем пункт 6
  • В появившемся списке нужно выбрать ваше месторасположение, так как я нахожусь в Калининграде , я выбираю Европа , набрав 8
  • Переходим к следующему списку, выбор страны, я нахожусь в России , выбираю пункт 39
  • Следующий выбор, это таймзона относительно Москвы , я нахожусь в Калининграде , выбираю 1
  • Мы выбрали все необходимое, нам показывают сводные данные нашего выбора и предлагают подтвердить свой выбор, у меня все корректно, набираю 1
  • Нас спрашивают, сохранить эти же данные и для PHP , соглашаюсь, набираю Y
  • Нам показывают какие файлы будут изменены, и какие сервисы будут перезапущены, меня все устраивает, набираю y
  • Запустилось задание, посмотрим как оно выполняется. Все ок задание выполнено.
  • Выходим из меню веб-окружения, и набираем команду date
  • Убедились, что время машины правильное. Корректность установки времени у сервера PHP и MySql можно проверить через административный веб интерфейс «Инструменты » -> «Проверка системы »

Установка интернет-магазина на «Веб-окружение»

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

В вашем браузере отключен JavaScript

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

Не забывайте задавать вопросы в комментариях.

Первая часть статьи – настройка веб окружения.

Разбираться как работать с новым разделом в продукте «Управление масштабированием » мы начнем с установки CentOS, и последующей установки «1С-Битрикс: Веб-окружение» 5.х »

Установка CentOS

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

Установка «1С-Битрикс: Веб-окружение» 5.х»

Операционная система установлена, давайте установим на нее веб-окружение 5.х:

В вашем браузере отключен JavaScript

Разберем ролик подробно:

  • Логинимся на сервер под административным аккаунтом
  • Для дальнейшей установки нам понадобится «wget », по умолчанию он не установлен, устанавливаем командой: yum install wget
  • Загружаем скрипт «веб-окружения » и запускаем его, следующими командами:

где порты обозначают и используются для следующих сервисов:

25 - smtp сервер 80 - http 443 - https 5222 - bitrix xmpp сервер 5223 - bitrix xmpp сервер по ssl 8890 - ntlm авторизация 8891 - ntlm авторизация по ssl 8893 - http сервер мгновенных сообщений 8894 - https сервер мгновенных сообщений
  • Порты прописаны, необходимо сохранить таблицу, следующей командой: service iptables save
  • Ну и в последнюю очередь устанавливаем оболочку mc , с помощью команды: yum install mc
  • Установки закончены, перезагружаем сервер, чтобы посмотреть, что все установилось корректно, видим на экране, что запущена машина: 5.0.37
При первом входе в виртуальную машину с логином «root » и паролем который вы задали, вам предложат сменить пароль у пользователя «bitrix » – от имени которого вы и продолжите работать с машиной.

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

Обновление «1С-Битрикс: Веб-окружение» 5.х»

Машина постоянно развивается и периодически ее следует обновлять, рассмотрим обновление через консоль управление машиной:

В вашем браузере отключен JavaScript

Разберем ролик подробно:

  • Логинимся на сервере под root , вводим пароль.
  • Попадаем в меню создания пула (pool) серверов, жмем 1 , для создания. Видим что пул (pool) создан, жмем Enter для возврата в меню – данное меню появляется если вы не создавали пул (pool). Если пул (pool) был создан ранее, данный шаг пропускаем.
  • Далее нам нужно найти пункт обновления, для этого переходим в другое меню, выбрав 1 .
  • В открывшемся меню видим пункт Update , под пунктом 4 , выбираем его.
  • Запускается Update , вам нужно ввести имя хоста, у меня оно server1 , и подтвердить ваше решение на Update , набрав Y
  • Мы видим, запуск задания «Start job », нажав Enter возвращаемся в меню.
  • Запущенные задания можно смотреть через пункт меню 5 , входим в него.
  • Появилось небольшое меню и список, где показаны запущенные задания.
  • Выбираем пункт меню 1 , что бы увидеть запущенные задания
  • Видим наше задание и статус выполнения, возвращаемся нажав 0
  • Вернувшись мы видим, что задание уже выполнено и получило статус «finished », можно выбрав пункт 0 , выходить из этого меню.
  • В таблице над меню видим, что веб-окружение стало версии 5.0.44
  • Выходим из меню, выбрав пункт 0
  • Покидаем root, набрав команду exit
  • Видим, что и тут поменялась версия веб-окружения на 5.0.44
Настройка Времени и Тайм зоны

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

Дата и время на сервере это не одна конкретная дата и время, это фактически три различных даты и три различных времени со своими часовыми поясами.

Какие три места:

  • Время сервера
  • Время PHP
  • Время MySQL
Смена происходит через пункт меню веб-окружения, и меняет дату и время, в трех местах сразу, это очень важный момент, что все три места работают с одинаковыми параметрами времени и даты.

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

В вашем браузере отключен JavaScript

Разберем ролик подробно:

  • Подключаемся к нашему серверу с правами root
  • В основном меню выбираем пункт 1
  • В открывшемся меню выбираем пункт 6
  • В появившемся списке нужно выбрать ваше месторасположение, так как я нахожусь в Калининграде , я выбираю Европа , набрав 8
  • Переходим к следующему списку, выбор страны, я нахожусь в России , выбираю пункт 39
  • Следующий выбор, это таймзона относительно Москвы , я нахожусь в Калининграде , выбираю 1
  • Мы выбрали все необходимое, нам показывают сводные данные нашего выбора и предлагают подтвердить свой выбор, у меня все корректно, набираю 1
  • Нас спрашивают, сохранить эти же данные и для PHP , соглашаюсь, набираю Y
  • Нам показывают какие файлы будут изменены, и какие сервисы будут перезапущены, меня все устраивает, набираю y
  • Запустилось задание, посмотрим как оно выполняется. Все ок задание выполнено.
  • Выходим из меню веб-окружения, и набираем команду date
  • Убедились, что время машины правильное. Корректность установки времени у сервера PHP и MySql можно проверить через административный веб интерфейс «Инструменты » -> «Проверка системы »

Установка интернет-магазина на «Веб-окружение»

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

В вашем браузере отключен JavaScript

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

Не забывайте задавать вопросы в комментариях.

Эта статья также доступна на следующих языках: Тайский

  • Next

    Огромное Вам СПАСИБО за очень полезную информацию в статье. Очень понятно все изложено. Чувствуется, что проделана большая работа по анализу работы магазина eBay

    • Спасибо вам и другим постоянным читателям моего блога. Без вас у меня не было бы достаточной мотивации, чтобы посвящать много времени ведению этого сайта. У меня мозги так устроены: люблю копнуть вглубь, систематизировать разрозненные данные, пробовать то, что раньше до меня никто не делал, либо не смотрел под таким углом зрения. Жаль, что только нашим соотечественникам из-за кризиса в России отнюдь не до шоппинга на eBay. Покупают на Алиэкспрессе из Китая, так как там в разы дешевле товары (часто в ущерб качеству). Но онлайн-аукционы eBay, Amazon, ETSY легко дадут китайцам фору по ассортименту брендовых вещей, винтажных вещей, ручной работы и разных этнических товаров.

      • Next

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

  • Еще приятно, что попытки eBay по руссификации интерфейса для пользователей из России и стран СНГ, начали приносить плоды. Ведь подавляющая часть граждан стран бывшего СССР не сильна познаниями иностранных языков. Английский язык знают не более 5% населения. Среди молодежи — побольше. Поэтому хотя бы интерфейс на русском языке — это большая помощь для онлайн-шоппинга на этой торговой площадке. Ебей не пошел по пути китайского собрата Алиэкспресс, где совершается машинный (очень корявый и непонятный, местами вызывающий смех) перевод описания товаров. Надеюсь, что на более продвинутом этапе развития искусственного интеллекта станет реальностью качественный машинный перевод с любого языка на любой за считанные доли секунды. Пока имеем вот что (профиль одного из продавцов на ебей с русским интерфейсом, но англоязычным описанием):
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png