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

Всем нужны Битрикс-попугаи, и побольше. Я работаю администратором в хостинг-компании и постоянно сталкиваюсь с такими запросами. Давайте покончим с этим раз и навсегда — в этой статье вы найдёте ответ, как железо влияет на производительность 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), в таблице приведена максимальная частота согласно спецификации процессора.
Что ищем?
  • Сервер для больших попугаев.
  • Сервер для высокого показателя скорости выполнения запросов сайта.
  • Баланс между попугаями и реальной производительностью.
  • Сервер для более высокой скорости выполнения запросов, под более нагруженный проект
  • Сервер для ещё большей скорости выполнения запросов, под высоконагруженный проект
Теория подтвердилась



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

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

Или вы принципиально закармливаете попугаев?
Автор: Станислав Авдеев, системный администратор FirstDEDIC

1dedic.ru

0 комментариев

Оставить комментарий