Производительность
Проекты с высокой нагрузкой
Высокие показатели, полученные при
нагрузочном тестировании продукта, лучше всего подтверждаются результатами работы реальных сайтов. Ниже приведены примеры крупных веб-проектов, разработанных на «Битрикс: Управление сайтом».
Руфат Гусейнов, директор по электронной коммерции и корпоративным продажам:
«В декабре 2014 года наша компания пережила мощнейший всплеск посетителей сайта, который был примерно в три раза выше средних показателей, и мы с успехом справились с этой нагрузкой. Более того, сейчас наша компания обновляет платформу «1С-Битрикс» на новейшую версию, так как в ней реализован весь самый современный функционал. Практика показывает, что отказ какой либо платформы – это сбой архитектуры проекта, ее мощности на серверном уровне. Эта часть жизнедеятельности любого ресурса остается всегда за кадром, но именно она во время пика нагрузок чаще всего и подводит. И именно это надо учитывать заранее перед пиковыми нагрузками».
4 000 000 хитов в сутки,
обновление каждые 15 минут
Данные о посещаемости интернет-магазина за декабрь 2014 года:
- Общая посещаемость за весь месяц: 2 960 560 пользователей и 21 697 129 просмотров
- 22 декабря (самый нагруженный день): 163 631 пользователей и 895 861 просмотров
Данные о посещаемости интернет-магазина за ноябрь 2014 года:
Самый нагруженный день – 8 185 546 хитов в сутки
Данные о нагрузках на сайт во время DDoS
Данные за 10-11 июля 2012 года:
- 90 запросов в секунду
- 1 000 000 просмотров
- 600 000 пользователей
- 2700 чел одновременно в онлайне
Данные за 2012-2014 год:
- Средняя нагрузка на сайт - 500 000 хитов в сутки
- Самая большая нагрузка - 1 300 000 хитов за сутки
Мнение экспертов
«Битрикс: Управление сайтом» - решение для любых нагрузок
«Битрикс: Управление сайтом» - многофункциональный продукт с широкими возможностями, но раньше за это приходилось расплачиваться значительной потерей производительности, особенно в случаях, когда за разработку ресурса брался не очень квалифицированный пользователь. Тестирование показало, что в новых версиях «Битрикс» разработчикам удалось устранить узкие места и значительно повысить производительность системы. Это успех!».
Дмитрий Криков, технический директор компании .masterhost
Готовность к высоким нагрузкам
Компании «Битрикс», Selectel и ITSumma в 2015 году провели нагрузочное тестирование программных продуктов «Битрикс: Управление сайтом» (редакция «Бизнес») и «Битрикс: Энтерпрайз».
Результаты нагрузочного тестирования подтверждают, что продукты стабильно работают в условиях сверхбольших нагрузок.
Готовый интернет-магазин на продукте
«Битрикс: Управление сайтом» (редакция «Бизнес»), содержащий до
99280 SKU и размещенный на одном типовом сервере, способен обслужить за сутки:
|
- до 779 991 уникальных сессий
- до 14 781 832 просмотров страниц
- до 29 635 заказов
|
Готовый интернет-магазин на продукте
«Битрикс: Энтерпрайз», содержащий
99280 SKU и размещенный
на кластере из двух типовых серверов, способен обслужить за сутки:
|
- до 1 214 858 уникальных сессий
- до 23 082 301 просмотров страниц
- до 46 436 заказов
|
Готовый интернет-магазин на продукте
«Битрикс: Энтерпрайз», содержащий до
99280 SKU и размещенный
на кластере из четырех типовых серверов, способен обслужить за сутки:
|
- до 2 434 534 уникальных сессий
- до 46 256 141 просмотров страниц
- до 93 042 заказа
|
Высокая производительность на доступном оборудовании
Тестовая среда, используемая при нагрузочном тестировании:
Аппаратное обеспечение предоставлено компанией Selectel: Intel Xeon E3-1270v3
3.5 ГГц, 32 ГБ RAM, 2 × 240 ГБ SSD.
|

|
Программное обеспечение сервера сконфигурировано с помощью продукта «Битрикс: Виртуальная машина». Произведено обновление PHP до версии 5.6.9.
|
2007 год: Нагрузочное тестирование MySQL-версии продукта, совместно проведенное компаниями «Битрикс», QSOFT и .masterhost
2010 год: Нагрузочное тестирование MySQL-версии продукта «1С-Битрикс: Управление сайтом» 9.5, совместно проведенного компаниями «Битрикс», «Онтико» и .masterhost
Тестирование
Нагрузочное тестирование
«Мы рассматриваем тестирование самого продукта «Битрикс: Управление сайтом» как вопрос предоставления нашим клиентам гарантий в плане производительности и отказоустойчивости. Прекрасные результаты нагрузочного тестирования позволяют нам заявлять о готовности проектов, созданных на базе «Битрикс: Управление сайтом», к масштабированию под любые нагрузки».
Артем Рябинков, руководитель отдела развития бизнеса компании «Битрикс»
Цели тестирования 2015
Проводя новое нагрузочное тестирование платформы «Битрикс» совместно с компаниями Selectel и ITSumma, мы преследовали следующие цели:
- Оценка максимальной производительности, которую способны выдерживать типовые редакции «Битрикс: Управление сайтом» на доступном выделенном оборудовании с использованием одного сервера.
- Оценка максимальной производительности, которую способен выдержать продукт «Битрикс: Энтерпрайз» в кластерном решении, включая оценку возможностей дальнейшего линейного горизонтального масштабирования.
- Оценка влияния технологии «Композитный сайт» на время отклика и производительность системы.
- Оптимизация конфигурации серверного программного обеспечения, выявление ограничений, определение методов дальнейшего масштабирования.
Подробнее: как проходит тестирование CMS «Битрикс»
Полученные результаты
Готовый интернет-магазин на продукте
«Битрикс: Управление сайтом» (редакция «Бизнес»), содержащий до
99280 SKU и размещенный на одном типовом сервере, способен обслужить за сутки:
|
- до 779 991 уникальных сессий
- до 14 781 832 просмотров страниц
- до 29 635 заказов
|
Готовый интернет-магазин на продукте
«1С-Битрикс: Энтерпрайз», содержащий
99280 SKU и размещенный
на кластере из двух типовых серверов, способен обслужить за сутки:
|
- до 1 214 858 уникальных сессий
- до 23 082 301 просмотров страниц
- до 46 436 заказов
|
Готовый интернет-магазин на продукте
«Битрикс: Энтерпрайз», содержащий до
99280 SKU и размещенный
на кластере из четырех типовых серверов, способен обслужить за сутки:
|
- до 2 434 534 уникальных сессий
- до 46 256 141 просмотров страниц
- до 93 042 заказа
|
Выводы
Результаты тестирования подтвердили высокую производительность платформы (до
167 динамических запросов в секунду на типовом сервере) и стабильность при работе с большими нагрузками (отсутствие резких отклонений на периоде 24-часового тестирования).
В настоящий момент п
латформа «Битрикс: Энтерпрайз» позволяет
эффективно горизонтально масштабироваться по числу серверов:
- коэффициент прироста 1,65 при двух серверах, по отношению к одному серверу (коэффициент полезной нагрузки одного сервера 0,825)
- коэффициент прироста 3,18 при четырех серверах по отношению к одному серверу (коэффициент полезной нагрузки одного сервера 0,795)
- коэффициент прироста 2,01 при четырех серверах по отношению к двум серверам
2-кратный прирост при тестировании 4-х-серверов говорит о возможности эффективного линейного горизонтального масштабирования.
Сравнение эффективности конфигурации №1 в варианте с использованием и без использования композитного кэша говорит об отсутствии дополнительной нагрузки на сервер в случае применения композитного кэша, при его хранении средствами nginx.
Использование
технологии «Композитный сайт» кардинально уменьшает время отклика, что положительно влияет на восприятие контента посетителями сайта, а также на эффективность индексирования поисковыми системами.
Дополнительно установлено, что в
99%-процентили более
500 мс были выполнены только запросы, связанные с добавлением товара в корзину и оформлением заказа, – около
1% запросов, а
95% выполнялись в пределах
300 мс, что является стандартом для высокопроизводительных систем.
Тестирование всех конфигураций производилось в условиях равномерной нагрузки. В реальном проекте нагрузка будет неравномерной (варьироваться в зависимости от времени суток, сезона, проведенных маркетинговых кампаний и т.д.). Суточные показатели для работающего проекта будут в 2,5-3 раза меньше, а результаты тестов в условиях реальных приложений могут служить ориентиром для настройки приложения и принятия решения о необходимости масштабирования.
Алексей Лавренюк, Яндекс.Танк:
«При проектировании систем важно понимать, какую нагрузку смогут выдержать компоненты, из которых они собираются. Это необходимо для того, чтобы предсказать появление узких мест в архитектуре и наметить пути их устранения до того, как это приведет к потере денег и репутации.
Поскольку для тестирования с самого начала был использован Яндекс.Танк, будет довольно просто перейти от экспериментов с нагрузкой к полноценным автоматизированным нагрузочным тестам и учитывать их результаты уже на начальных стадиях разработки. Это позволит снизить риски, связанные с производительностью и уменьшить затраты на устранение проблем, вызванных особенностями архитектуры и компонент системы».
Евгений Потапов, ITSumma:
«В проведенном тестировании для нас было важно оценить пределы производительности платформы «Битрикс» с использованием типового оборудования. Понять, полезно ли это для владельцев сайтов – ведь они могут оценить свои расходы, полезно ли для разработчиков и администраторов - они могут ориентироваться насколько их решение соизмеримо с эталоном, и полезно ли для пользователей – когда ресурсы выдерживают нагрузку – сайт не тормозит.
Тестирование показало – «Битрикс» отлично справляется с нагрузкой и работает на уровне высокопроизводительных систем, обеспечивает быстрое время ответа и позволяет легко увеличивать ресурсы добавлением новых серверов – ресурсы системы вырастают соразмерно числу элементов кластера. А это, в свою очередь, означает, что «Битрикс» подходит для проектов любого уровня сложности – от небольших интернет-магазинов до сложных высоконагруженных проектов».
Александр Тугов, «Селектел»:
«Наши компании связывают давние партнерские отношения. Мы ценим, что для проведения нагрузочного тестирования «Битрикс» выбрал инфраструктуру «Селектел». Это свидетельствует о высоком уровне доверия к нашим хостинговым услугам со стороны одного из крупнейших российских разработчиков систем управления. Надеемся, что существующие и будущие пользователи продуктов «Битрикс» также будут отдавать предпочтение «Селектел» при планировании инфраструктуры для развертывания приложений».
Условия тестирования
Тестируемое ПО
|
|
«Битрикс: Управление сайтом»
Редакция «Бизнес». Версия 15.0.14
Установка на 1 типовом сервере
|
«Битрикс: Энтерпрайз»
Версия 15.0.4
Установка на кластере из 2х и 4х типовых серверов
|
Параметры установки:
- Тип коробочного решения «Интернет-магазин»
-
Демонстрационные данные каталога товаров, включащие 99280 SKU
-
Включенная технология «Композитный сайт»
Тестовая среда
Аппаратное обеспечение предоставлено компанией Selectel: Intel Xeon E3-1270v3
3.5 ГГц, 32 ГБ RAM, 2 × 240 ГБ SSD.
|

|
Программное обеспечение сервера сконфигурировано с помощью продукта «Битрикс: Виртуальная машина». Произведено обновление PHP до версии 5.6.9.
|
Параметры проведения теста
- Тестирование проводилось системой Yandex.Tank, версии 1.7.10. Yandex.Tank выбрана как надежная, зарекомендовавшая себя система, которая позволяет, на наш взгляд, предоставить наиболее подробные данные по проведенному тестированию. Результаты тестирования Yandex.Tank проверены во множестве проведенных нагрузочных тестирований компанией Яндекс и признаются независимыми экспертами.
- В качестве генератора нагрузки использовалось приложение JMeter 2.13. JMeter — открытая и гибкая система проведения нагрузочного тестирования, которая достаточно давно используется различными компаниями для проверки систем под эмуляцией реальных нагрузок.
-
В качестве SLA-времени ответа выбрана 99-процентиль <1000мс (99% запросов выполняются быстрее 1000мс), как максимально допустимое приемлемое время генерации страницы для интернет-магазина. Тест выполняется при максимальной загруженности процессора/диска/памяти, на которой сохраняется данный SLA.
-
Поскольку в рамках нагрузочного тестирования на проект подается критическая для оборудования нагрузка, допускается возникновение ошибок. Доля запросов с ошибочными ответами (невыполненных запросов) не должна превышать 0.5% от общего числа запросов.
Скачать полный отчет
Предыдущие нагрузочные тесты
2007 год: Нагрузочное тестирование MySQL-версии продукта, совместно проведенное компаниями «Битрикс», QSOFT и .masterhost
2010 год: Нагрузочное тестирование MySQL-версии продукта «1С-Битрикс: Управление сайтом» 9.5, совместно проведенного компаниями «Битрикс», «Онтико» и .masterhost
Масштабирование
Масштабирование интернет-проектов
Любой новый или работающий проект на «Битрикс: Управление сайтом» может быть представлен как веб-кластер взаимозаменяемых серверов.
Модуль Веб-кластер - это комбинация технологических решений, которые позволяют распределить один сайт на несколько серверов, решая тем самым несколько задач: обеспечение высокой доступности сайта; его масштабирование в условиях возрастающей нагрузки; балансирование нагрузки, трафика, данных между несколькими серверами.
Описание модуля Веб-кластер
Диагностика
Диагностика проекта и рекомендации
Для повышения производительности и скорости работы интернет-проектов в продукте «Битрикс: Управление сайтом» используются специальные инструменты для оценки производительности конфигурации, платформы «1С-Битрикс» и качества разработки интернет-проекта. А кроме того система автоматически производит диагностику работы и выдает рекомендации по улучшению производительности.
Анализ конфигурации «Битрикс»
Проанализировать скорость работы проекта поможет
«Монитор производительности», позволяющий в абсолютных величинах оценить конфигурацию проекта, сравнить ее с эталонной системой, проанализировать общую производительность проекта и выявить «проблемные участки».
«Панель производительности» модуля позволит не только протестировать производительность проекта, но и сравнить полученные результаты с эталонной системой. И, что важно, при этом даются рекомендации по настройке и приводится список самых нагруженных страниц.
Эталонные замеры производительности,
которые используются «Монитором производительности», выполнены на
виртуальной машине VMware, разработанной специалистами «Битрикс». Вы тоже можете бесплатно проверить, насколько быстро заработает ваш сайт на
«Битрикс: Виртуальная машина».
Разработчикам
Информация для разработчиков
Кеширование информации
Одна из ключевых стратегий масштабирования - кеширование информации. Благодаря кешированию удается значительно уменьшить число повторяющихся запросов к базе данных и исключить повторяющиеся ресурсоемкие вычисления. Пожалуй, ни один крупнейший интернет-проект в мире не обходится без использования тех или иных технологий кеширования информации.
При этом кеширование является превосходным инстументом для небольших проектов, содержащих редко обновляемые данные. Технология кеширования проста в использовании, не требует от пользователя отслеживать изменения и создана для повседневного использования.
Настройки автокеширования
Оптимизация кода
Как показывает практика, программисту очень сложно одновременно сконцентрироваться на решении бизнес-задачи в программном коде и решении задач быстрого исполнения этого кода или его безопасности. Каждая из этих задач обладает своей спецификой, и требует взгляда на код каждый раз в иной плоскости.
Оптимизация кода
Инструменты отладки
Инструменты отладки являются прекрасным подспорьем разработчикам в ежедневной работе. В состав продукта включается отладочный инструментарий, который позволяет проанализировать время работы каждого отдельного компонента и всей страницы в целом. Инструмент позволяет изучить каждый SQL-запрос, созданный компонентом, место вызова, время работы компонента, время и процент исполнения SQL-запросов этого компонента. Полная статистика собирается и показывается по времени исполнения всей страницы и всем SQL-запросам.
Инструменты отладки
Компрессия трафика
Одним из факторов, определяющих скорость работы посетителей с сайтом является объем данных, который при каждом запросе закачивается в браузер. Веб-сервер может быть настроен оптимально и быстро генерировать веб-страницы по запросам. Однако, если каждая такая страница будет больших размеров, то посетителель будет вынужден долго ждать ее загрузки, что может негативно сказаться на имидже вашего веб-проекта и компании.
Также проблемы могут испытывать администраторы и контент-редакторы сайта, работающие в административном разделе. Если работа в "админке" ведется с большими наборами данных, загрузка их в браузер, особенно на медленных каналах, также будет занимать существенное время.
Важна не только скорость генерации страниц, но также и скорость их доставки посетителю. Размер страницы напрямую влияет на скорость ее загрузки в браузер.
В настоящее время эта задача решается путем компрессии (сжатия) передаваемых данных на стороне сервера и последующей декомпрессии (распаковки) данных на стороне компьютера посетителя. Практические все современные браузеры поддерживают прием сжатого трафика.
Сжатие контента можно осуществлять непосредственно веб-сервером В частности для Apache есть модули mod_gzip и mod_deflate. Также компрессию возможно реализовать на стороне PHP включением директивы zlib.output_compression=1.
Несмотря на это, в продукте мы реализовали отдельный модуль компрессии, который позволяет вам не зависеть от настроек серверного ПО. Это дает вам следующие преимущества:
-
компрессия работает незаметно и не требует установки и настройки сторонних модулей;
-
вы получаете возможность использования компрессии на виртуальном хостинге, когда очень часто компрессия на стороне сервера выключена;
-
загрузка процессов веб-сервера минимальна;
-
модуль компрессии в продукте корректно работает со всеми браузерами, и даже исправляет ряд их ошибок. В частности в браузере Internet Explorer существовала проблема, когда при распаковке компрессированного контента терялись 2Кб начальных данных. Кроме того, модуль безошибочно определяет, поддерживает ли компрессию браузер или прокси-сервер клиента.
Производительность на виртуальном хостинге