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



    Всем нужны Битрикс-попугаи, и побольше. Я работаю администратором в хостинг-компании и постоянно сталкиваюсь с такими запросами. Давайте покончим с этим раз и навсегда — в этой статье вы найдёте ответ, как железо влияет на производительность CMS Битрикс (реальную и «попугайную»). Проведём тесты и подберём несколько конфигураций сервера.

    Цели исследования:

    • Выявить зависимость между характеристиками «железа» и показателями производительности Битрикс (попугаями), а также реальной скоростью выполнения запросов.
    • Определить динамику изменения производительности от смены аппаратной конфигурации сервера.
    • Подобрать варианты конфигураций сервера.

    Условия тестирования:

    • CMS «1С-Битрикс: Управление сайтом» версии 18.0.4, редакции «Стандарт» в кодировке utf-8.
    • ОС Debian 9.5 из netinstall образа.
    • nginx+php-fpm
    • MariaDB 10.1
    • php 7.0
    • Выполнены настройки для корректного прохождения «проверки системы», pstate отключен, acpi-cpufreq работает в режиме performance.
    • Замер скорости выполнения запросов производится утилитой ab.

    Итак, чем кормить попугаев?


    Методика

    Для выявления зависимости показателей Битрикс от производительности процессора и оперативной памяти используем следующую конфигурацию:

    Процессор: Intel Core i7-3770K CPU @ 3.50GHz
    Память: DDR3 Samsung 1600 MHz (M378B5273DH0-CH9)
    SSD: OCZ-VERTEX4 128Gb MLC
    HDD: WD5000AAVS-00ZTB0

    Данная конфигурация позволяет в широком диапазоне изменять частоту процессора, а значит не нужно множество раз заменять CPU. Для изменения частоты используется утилита frequency-set. Драйвер intel_pstate не позволяет управлять частотой, поэтому отключен.

    Замеры проводим с шагом 400Гц. Помимо показателей производительности Битрикс, замеряем сколько запросов главной страницы может выполнить сервер за одну секунду. Для замера показателей производительности при использовании HDD-диска, на HDD создана реплика ранее настроенной системы и собраны показатели на максимальной частоте.

    Результаты: кормим попугаев частотой, а скорость запросов — ядрами


    Вот такие графики у меня получились:











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

    Согласно полученным данным, можно сделать следующие выводы:

    • Количество попугаев увеличивается вместе с частотой процессора и не зависит от производительности диска. С увеличением количества ядер процессора происходит снижение этого показателя.
    • Скорость выполнения запросов зависит от частоты процессора и количества ядер. Данный показатель мы считаем наиболее важным, т.к. именно от него зависит производительность сайта при высоком количестве посетителей.
    • Метрика «Файловая система» не имеет зависимости от производительности диска. Незначительное увеличение показателя на графике — погрешность. Показатель растет с увеличением частоты.
    • От производительности диска зависят метрики «База данных MySQL (запись)», «База данных MySQL (изменение)» и скорость выполнения http запросов.
    • Показатель «База данных MySQL (чтение)» перестаёт увеличиваться после двух ядер. Наличие более двух ядер не отражается в тесте производительности Битрикс.
    • Частота оперативной памяти не влияет на производительность. Провели тесты, однако изменения метрик при изменении частоты не происходило.

    Подбираем железо


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

    • E3-1270v6
    • E5-2620v4
    • E5-1650v4
    • E5-2640v4
    • 2xE5-2699

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

    Что ищем?

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

    Теория подтвердилась ↓





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

    Использовал в статье конфигурации с 1dedic.ru. Серверы на E5-2640v4 и 2xE5-2699v4 можно заказать со скидкой 10% на 2 месяцаобратитесь в отдел продаж с кодовой фразой «Нужен сервер под Битрикс, для реальной производительности». При оплате за год минус ещё 10%.

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

    Или вы принципиально закармливаете попугаев?

    FirstVDS / FirstDEDIC
    91,46
    Компания
    Поделиться публикацией

    Комментарии 20

      0
      Эм. Логично же, да.
        0
        Увы, не для всех. Часто приходится объяснять клиентам что стоимость железа не означает высокий балл в тесте. Не говоря о том что показатель «файловая система» — вообще к диску отношения не имеет.
      • НЛО прилетело и опубликовало эту надпись здесь
          0
          Почему для замера производительности битрикса взяли версию «стандарт»?
          Цель была — понять как смена железок влияет на то что выдает тест битрикса, и что будет при этом выдавать ab. Редакция могла быть любой, фактически это ничего бы не изменило.
          Попугаи, судя по тем кто обращается в поддержку — нужны абсолютно всем, люди видят циферку и хотят чтобы там было большое значение. При смене сервера на более дорогой — люди ожидают что попугаев будет больше. Никаких настроек самого битрикса не проводилось, модули активны только те что были сразу после установки. Настройки ОС были оптимизированы с учетом требований CMS. Кеш силами веб сервера не настраивался. Вы же не думаете что nginx покажет такие скромные результаты при отдаче статики ?) В качестве наполнения битрикс дает пресеты, один из них и использовался. Мы предлагаем читателям самим решать что им нужно, попугаи которые нарисует бирикс, или возможность обработать больше запросов и соответственно держать больше посетителей.
          • НЛО прилетело и опубликовало эту надпись здесь
              0
              Увеличение количества модулей приведет максимум к тому что просто снизятся показатели. Это не изменит картину в целом. «Вылизанное» надежным разработчиком объективно показывает работу cms как ее задумал разработчик. Надстройки сторонних прогеров могут доходить вплоть до использования sleep в ядре битрикса, а это как бы уже проблемы кода, а не сервера. Держим в уме что мы предоставляем серверы и нам важно показать как работает правильно функционирующая система при разном железе.
              Относительно кеша — он реализуется силами cms, следовательно его эффективность напрямую зависит от битрикса. Нагрузка на момент тестирования была с стороны php-fpm который веб сервером не является.
              • НЛО прилетело и опубликовало эту надпись здесь
                  0
                  Крайне интересно чем должно быть выражено «родство» ОС для типичной php cms.
                  Картина вполне реальная:
                  • больше частота — выше показатели которые рисует битрикс.
                  • больше ядер — выше производительность и как следствие — возможность поддерживать больше посетителей

                  Вы можете привести пример «правильно функционирующей системы» с «не типовой» конфигурацией?
                  Сравнивать транспортные средства и вычислительную технику считаю не правильным.
          0
          Заказчикам попугаи всегда важнее
          • НЛО прилетело и опубликовало эту надпись здесь
              0
              Те кому действительно важна производительность, давно отказались от php и держат свои проекты в облаках. Битрикс как бы удобен он не был — однопоточное приложение, TTFB которого зависит от частоты процессора. Важно еще сказать что проблемы регулярно возникают из за плохого кода, что собственно легко выявляется развертыванием той самой ванильной версии.
              • НЛО прилетело и опубликовало эту надпись здесь
                  0
                  Для бизнеса важно чтобы шли продажи, рад что текущего решения вам хватает. Странно только видеть вас в комментах, если все настолько лампово.
                  Кстати, мы ничего своего не вводим. Ab — утилита нагрузочного тестирования, с ее помощью можно судить о том сколько единовременных обращений к сайту сможет выдержать сервер. Попугаи битрикса как раз таки могут вводить в заблуждение, потому что сервер с большим количеством ядер выдаст меньше попугаев, но сможет обработать на порядок больше посетителей.
                  • НЛО прилетело и опубликовало эту надпись здесь
                      0
                      В том то и дело, мы пытаемся донести что показатели которые рисует битрикс — фигня не имеющая ничего общего с производительностью которая нужна посетителям вашего сайта. Однако, мы не можем запрещать людям стрелять себе в ногу, потому мы показываем что высокого значения попугаев можно добиться используя сервер с высокой частотой. Кстати i9 9900k (5ГГц) выдает ~ 260 попугаев в тесте битрикс.
                      За темы спасибо, подумаем.
              0
              Собственно, теперь специалисты занимающиеся развертыванием — могут выбрать сервер который устроит заказчика :) Даже если выбор будет в сторону попугаев.
              0
              Не разбираясь в предмете вопроса, что-то в чем-то пытались измерить. Я люто присоединяюсь к koluka с его вопросами.
              Давайте начнем с простого — почему Debian то? У битрикса есть свой вполне годный VM Bitrix. Эксперимента ради накатите на тоже железо его, и сравните тесты.
              Во вторых, совершенно не ясно, был ли битрикс настроен, было ли включено кеширование, если да то какое (файлы/memchec/etc/). В третьих, что конкретно за сайт тестировался? Какое-то типовое решение? Пустая инсталляция? Тестировали что именно? Настраивались ли параметры софта? Php?
              Вопросов больше чем ответов, тест не информативен совершенно. К чему все это было — не ясно.

                0
                Вполне годный VM Bitrix, от фонаря выставляет конфигурацию демонам что регулярно приводит к OOM и необходимости приведения системы в рабочее состояние руками. Debian выбран потому что в репах содержит требуемый битриксом софт, а хорошее знание ОС позволяет ее наиболее правильно настроить. Полагаю хорошие специалисты работают с тем инструментом который лучше всего знают. Битрикс в стандартной конфигурации использует файловое кеширование, memcache кстати работает медленнее чем ssd (проверял, но это офтоп). Тестировался один из предлагаемых при установке CMS шаблонов. Софт с стороны системы был настроен, кстати та самая bitrix vm использует nginx+apache, что медленнее чем nginx+php-fpm используемый при тесте. Информативность думаю увидят те кому хотелось бы знать ответ на вопрос «что влияет на такой то показатель» или «почему на этом сервере попугаев меньше чем на том».
                0
                На «попугаи» обращают внимание только клиенты… разработчики в этот функционал Битрикса даже не глядят… он не отражает быстродействие
                  0
                  И клиенты же платят деньги. Или не платят. Ну и разработчики тоже сильно разные бывают

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

                Самое читаемое