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



    Всем нужны Битрикс-попугаи, и побольше. Я работаю администратором в хостинг-компании и постоянно сталкиваюсь с такими запросами. Давайте покончим с этим раз и навсегда — в этой статье вы найдёте ответ, как железо влияет на производительность 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
    154,00
    Компания
    Поделиться публикацией

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

      0
      Эм. Логично же, да.
        0
        Увы, не для всех. Часто приходится объяснять клиентам что стоимость железа не означает высокий балл в тесте. Не говоря о том что показатель «файловая система» — вообще к диску отношения не имеет.
        0
        Ванильная конфигурация, ванильный тест, ванильный результат, нафик никому не нужный, поскольку у людей с таким количеством ванили в жизни и так все хорошо.
        Почему для замера производительности битрикса взяли версию «стандарт»? Люди, которым нужны попугаи и производительность битрикса — не сидят на стандарте, ну серьезно… Какие модули были включены? Что отображалось на главной странице? Там вообще были данные которые битриксу нужно бы было таскать с диска? Или у вас тест битрикса = тест отдачи веб сервера? Включен ли кэш для страницы которую вы так рьяно дергали или страница каждый запрос формировалась новая?
        Вы в теме указываете, что битрикс меряет в попугаях и потом замерив попугаев и выведя, что попугаи больше относятся к производительности проца(и не факт что к производительности битрикса) на сервере предлагаете покупателям самый попугайный сервер. зачем?
        ЗЫ Зашел узнать от хостера какие конфиги и железо рулят, в чем битрикс тупит и как это править, а наткнулся на статью «племянника зама помощника по HR, который шарит в компах и целую лабораторную на линуксе сделал и обещал весь хабр на наш хостинг перетащить».
        фейспалм.жпг
        >Давайте покончим с этим раз и навсегда — в этой статье вы не найдёте ответ, как железо влияет на производительность CMS Битрикс (реальную и «попугайную»).
          0
          Почему для замера производительности битрикса взяли версию «стандарт»?
          Цель была — понять как смена железок влияет на то что выдает тест битрикса, и что будет при этом выдавать ab. Редакция могла быть любой, фактически это ничего бы не изменило.
          Попугаи, судя по тем кто обращается в поддержку — нужны абсолютно всем, люди видят циферку и хотят чтобы там было большое значение. При смене сервера на более дорогой — люди ожидают что попугаев будет больше. Никаких настроек самого битрикса не проводилось, модули активны только те что были сразу после установки. Настройки ОС были оптимизированы с учетом требований CMS. Кеш силами веб сервера не настраивался. Вы же не думаете что nginx покажет такие скромные результаты при отдаче статики ?) В качестве наполнения битрикс дает пресеты, один из них и использовался. Мы предлагаем читателям самим решать что им нужно, попугаи которые нарисует бирикс, или возможность обработать больше запросов и соответственно держать больше посетителей.
            0
            Тест битрикса по идее должен быть привязан к производительности битрикса, которая должна зависеть от количества модулей которые включены(и участвуют в отображении страницы) и настроек сервера, если это не так — его можно дальше не рассматривать. В моем случае магазин = около тысячи товаров с картинками, описанием, комментариями. В зависимости от заполненности страницы и характера контента — время загрузки кардинально меняется(статичная статья, карточка товара, страница каталога, есть ли эта страница в кэше, сколько характеристик товара проиндексировано, etc). И соответственно от характера контента меняется количество запросов к диску/процу/оперативке/etc… В вашем тесте — единственная страница в кэше(по умолчанию). В типовой, вылизанной дизайнерами битрикса конфигурации.

            >Редакция могла быть любой, фактически это ничего бы не изменило.
            На количество модулей(серьезность контента или если хотите «необходимость в производительности сайта») влияет конфигурация очень сильно.
            Использование «Стандарта» (в тот момент когда там доступны демо версии всех редакций и можно провести серьезный замер по каждой редакции, а контент в демках уже есть) мне кажется немного странным. По крайней мере в том случае, если бы статья стремилась к объективности, а не к рекламе.

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

                  Вы можете привести пример «правильно функционирующей системы» с «не типовой» конфигурацией?
                  Сравнивать транспортные средства и вычислительную технику считаю не правильным.
          0
          Заказчикам попугаи всегда важнее
            0
            Я заказчик. Если покупатели пожалуются на тормоза, а с попугаями все будет в порядке — я сменю попугаепродавателя или сервер, смотря кто будет слабым звеном. Не стоит всех владельцев битрикса записывать сразу в идиотов, но владельцев версии «стандарт» пожалуй эта статья немного подгребет. Им попугаи важнее производительности.
              0
              Те кому действительно важна производительность, давно отказались от php и держат свои проекты в облаках. Битрикс как бы удобен он не был — однопоточное приложение, TTFB которого зависит от частоты процессора. Важно еще сказать что проблемы регулярно возникают из за плохого кода, что собственно легко выявляется развертыванием той самой ванильной версии.
                0
                Ммммм. Производительность важна, но она не краеугольный камень для владельца. По крайней мере в моем случае. В моем случае битрикс дал за смешные(для интернет магазина) деньги возможность выставить около тысячи товаров с вменяемым интерфейсом. Это: поиск, ценообразование, мультивалютность, мультискладовость, мультисайтовость, автоматический пересчет цен в зависимости от курса валюты, наличие модулей у любой конторы с которой я собираюсь взаимодействовать(включая, да будут они благословенны во веки веков, онлайн кассы с чеками, эквайринг, вконтактик и тд и тп), масштабируемость ака мультисерверность(пусть кривую, но она есть) из коробки, техподдержку на каждый чих из разряда «чотатут цена неправильная» и многое другое. Причем я просто, тупо, добавляю модули с минимальной конфигурацией и занимаюсь действительно важными для бизнеса вещами. И да, я не спорю, если нанять нормальную команду и она запилит с нуля сайт не на php и все будет волшебно(или нет, если я ошибусь в выборе команды) я смогу сэкономить пару тыщ на хостинге в месяц за счет большей производительности, но стоит ли оно того? не уверен. Вот когда я уже буду грузить контейнерами и вагонами и начну терять миллионы на простое лагающего магаза — я подумаю о своем, с преферансом и профурсетками магазе(на который уже будут деньги), а пока — бизнес типовой, товар типовой(хоть и хорошего качества), магаз типовой, страна типовая, налоговая типовая и меня в этом списке магазин на битриксе вполне устраивает. Вот только выбор хостинга мутный — попугаи не отображают реальную производительность(приходится шаманить), а хостеры еще больше путают вводя своих попугаев на основе общих тестов.
                  0
                  Для бизнеса важно чтобы шли продажи, рад что текущего решения вам хватает. Странно только видеть вас в комментах, если все настолько лампово.
                  Кстати, мы ничего своего не вводим. Ab — утилита нагрузочного тестирования, с ее помощью можно судить о том сколько единовременных обращений к сайту сможет выдержать сервер. Попугаи битрикса как раз таки могут вводить в заблуждение, потому что сервер с большим количеством ядер выдаст меньше попугаев, но сможет обработать на порядок больше посетителей.
                    0
                    Для бизнеса важно чтобы шли продажи, рад что текущего решения вам хватает. Странно только видеть вас в комментах, если все настолько лампово.

                    Вы меня не слышите =) Я в комментах вам открытым текстом говорю: я заказчик, я заинтересован в нормальном тесте конфигураций под битрикс, на основе которых я смогу судить о хостинге и выбирать хостинг, я обращаю ваше внимание на то, в какой конфигурации битрикса хотелось бы этот тест видеть, и нет, мне не интересно знать количество единовременных обращений к единственной странице — мне интересна работа битрикса на всех страницах с разными включаемыми областями(модулями) и нет, ваш тест не показывает, что лишь только увеличение количества ядер добавляет производительности, а остальное не влияет(хотя судя из текста статьи вам это было бы удобно)…
                    Не обижайтесь, я ж не со злобы тут плююсь. Я стараюсь донести, что попугаи-попугаями и синтетические тесты тоже хороши, но пока ваш тест тянет максимум на обработку лендингов на битриксе, но тогда смысла в битриксе нет, можно найти намного более производительные конфигурации для единственной странички. Если вы рекламируете свой хостинг и хотите привлечь кого-то не с лендингом — нужно тестировать что-то более приближенное к боевой работе.
                    Темы на вскидку, если захотите еще что то писать про битрикс:
                    Какая нагрузка на канал при многосерверности, что сервера при синхронизации пересылают, как часто и есть ли смысл брать 2 сервера в одной подсети или там полмегабита хватит всем и есть смысл разнести их по разным сторонам света?
                    Что быстрее Дебиан + инсталяшка битрикса или чистая битрикс.вм с Центом?
                    Статистика конфигураций битрикса на вашем хостинге, типичные ошибки хостеров с битриксом, FAQ для них же, но не дерганье страницы…

                    ЗЫ За сим наверное попрощаюсь, не обижайтесь, лучше через недельку перечитайте и нафигачте статью с данными к которым мы, смертные, не имеем доступа и я тогда яростно вас поблагодарю.
                      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
                  И клиенты же платят деньги. Или не платят. Ну и разработчики тоже сильно разные бывают

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

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