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