Как стать автором
Обновить

Сравнение VPS-хостинга для 1C-Битрикс с нагрузочными тестами — выясняем какой Битрикс хостинг лучше

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров810

Выбор VPS для размещения сайта на 1С-Битрикс – задача не менее важная, чем разработка самого сайта.  Битрикс известен своей ресурсоёмкостью: без оптимального хостинга даже хорошо написанный сайт может «тормозить» и отпугивать посетителей. Высокая скорость загрузки напрямую влияет на конверсию и удовлетворенность пользователей – никто не станет ждать по 5–10 секунд открытия страницы интернет-магазина (если только вы не продаёте терпение оптом, и знаете кого-то лично в совете директоров Яндекса и Гугла, что можете себе позволить медленный ресурс). Поэтому правильный выбор VPS под Bitrix – залог быстрой работы сайта, особенно под нагрузкой. 

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

Я решил провести полевые тесты нескольких VPS провайдеров, с целью проверить, какие результаты выдают их сервера. С этой целью я обратился к 3 провайдерам и попросил у каждого тестовый период.

Все сервера были практически идентичной конфигурации, разве что у AdminVPS получилась чуть слабее конфигурация, так как у них не нашлось 4 CPU и мне выделили только 2.

Давайте смотреть, что у меня получилось!  

Описание провайдеров и конфигураций Битрикс VPS


Конфигурация серверов была вот такой - 4 виртуальных CPU, 6 ГБ RAM, 50 ГБ NVMe и ОС CentOS Stream 9 x64. На сервере развёрнута BitrixVM (Nginx + PHP-FPM + MySQL) с отключённым кэшированием для «чистой» оценки производительности. Кэширование Bitrix (композитный режим и кеширование opcache) на время тестов я отключил, чтобы проверять «чистую» производительность сервера. В моем сравнении участвуют следующие провайдеры:

  • Maxiplace – специализированный облачный провайдер для проектов на Битрикс (особо выделено, что VPS облачные (то есть с возможностью масштабирования), что позволяет менять параметры в процессе работы, без необходимости перехода на другой тариф). Заявляет максимальную скорость и надёжность для интернет-магазинов и порталов Bitrix24. В инфраструктуре используются высокочастотные процессоры (до 5–6 ГГц на ядро) и сверхбыстрые NVMe-накопители, дата-центры уровня Tier III. 4 виртуальных CPU,  6ГБ RAM, 50 ГБ NVMe и ОС CentOS Stream 9 x64.

  • Timeweb – один из крупнейших хостинг-провайдеров в России. Сервис достаточно опытный и можно его даже назвать старожилой этой ниши, но опыт не всегда равно качество, однако, рано еще говорить о чем то, на самом старте. В моем тесте участвует следующая конфигурация 4 виртуальных CPU, 5 ГБ RAM, 50 ГБ NVMe и ОС CentOS Stream 9 x64. У Timeweb заявлены SSD-накопители и процессоры с частотой до ~3,5–3,7 ГГц. Это массовый хостинг, известный стабильностью.

  • AdminVPS – провайдер, ориентированный на простоту для клиента. Заявляет использование SSD-дисков и дата-центра Tier III в Москве. В сравнении участвует конфигурация практически схожая с тестируемой - 2 виртуальных CPU, 4 ГБ RAM, NVMe SSD 80 Гб

Все VPS расположены в российских дата-центрах (у AdminVPS и Maxiplace – Москва, у Timeweb – Петербург). Можно приступать к тестам! Для полноты картины я постарался прогнать целый набор тестов, охватывающих разные аспекты производительности: от интегрированного Битрикс-бенчмарка до нагрузок на CPU, диск, базу данных, веб-сервер и сеть. Каждый тест я подробно опишу – и у вас будет своего рода инструкция, как вы сами можете измерить свой сервер самостоятельно. Правда везде будут нюансы, но это мелочи…

Методика тестирования и используемые тесты для проверки 1С-Битрикс VPS

1. Монитор производительности 1С-Битрикс


Первый тест – “родной” для нашей CMS. В каждую редакцию 1С-Битрикс встроен модуль «Панель производительности», позволяющий замерить скорость работы сайта на текущем сервере и сравнить её с эталонными показателями. По сути, это набор микротестов: проверяется быстродействие выполнения PHP-скриптов, скорость обращений к базе данных, операций с файловой системой и прочие показатели, важные для работы Битрикса. В конце модуль выводит суммарный индекс производительности в условных единицах – чем он выше, тем мощнее ваша инфраструктура относительно «базового» уровня, принятого за 30 единиц. Грубо говоря, этот индекс коррелирует с количеством страниц в секунду, которое способен обработать сайт на данном сервере (при отключенном кэшировании).

Как проводился тест: На каждом VPS я развернул демо-сайт (шаблон «Интернет - Магазин» из поставки Битрикс). В админ-панели Bitrix переходим в меню «Настройки -> Инструменты -> Панель производительности» и запускаем полный тест конфигурации. Тест автоматически прогнал серию замеров и выдал финальное значение индекса. Важно отметить, что перед тестом я отключил все виды кэширования (композитный режим, кеш компонентов), чтобы индекс отражал чистую мощность сервера. Этот простой по исполнению тест я прогнал на каждом сервере несколько раз для большей надежности, и взял среднее значение.

Что показывает индекс производительности: Результат теста – это число в единицах. Bitrix не раскрывает в открытом виде подробную формулу, но известно, что за 30 единиц принята производительность некоторой эталонной устаревшей конфигурации (условный сервер десятилетней давности). Современные VPS легко превосходят эталон в разы, поэтому реальные значения индекса должны быть выше эталона. На практике индекс >50 уже считается неплохим для небольшого проекта, >100 – признак очень бодрого сервера, а >200–300 означает, что “запаса хватит с головой” или что проект рассчитан на серьезные нагрузки. Низкие значения (менее 20) свидетельствуют о том, что сервер откровенно слаб для Битрикс (в таком случае сама администрация Битрикс обычно сигнализирует предупреждением, мол «скорость файловой системы низкая» или «мало оперативной памяти»). 

Теперь сравнительная таблица. Вот что думает о каждом сервере Битрикс.

Провайдер

Показатель производительности

Максиплэйс

190

Таймвеб

140

AdminVPS

160

2. Тест производительности CPU (sysbench) на Битрикс ВПС хостинге


Bitrix написан на PHP, а выполнение PHP-скриптов – задача процессорозависимая. Особенно критична частота и производительность на одно ядро, ведь генерация одной страницы сайта в основном происходит в одном потоке (хотя параллельные запросы от нескольких пользователей могут нагружать несколько ядер). Поэтому я отдельно протестировал мощность процессоров на каждом VPS с помощью утилиты sysbench. Это популярный консольный бенчмарк, умеющий нагружать разные подсистемы. Я использовал модуль теста CPU, который вычисляет простые числа до заданного предела, имитируя интенсивную вычислительную нагрузку.

Как повторить CPU-тест: убедитесь, что sysbench установлен (apt install sysbench). Команда для запуска однопоточного теста CPU:

sysbench --test=cpu --cpu-max-prime=20000 --num-threads=1 run
Результат Максиплэйс в один поток
Результат Максиплэйс в один поток
Результат Таймвеб в один поток
Результат Таймвеб в один поток
Результат AdminVPS в один поток
Результат AdminVPS в один поток

Я бы еще добавил сюда время выполнения операции -  --max-time=30 run. так как когда я запускал тест на своем серваке, он долго гонял, чтобы экономить время, рекомендую 30 секунд, за глаза, чтобы все понять.  

Полная команда

sysbench --
test=cpu --cpu-max-prime=20000 --num-threads=2 \
  --max-time=30 run
Результат Максиплэйс в два потока
Результат Максиплэйс в два потока
Результат Таймвеб в два потока
Результат Таймвеб в два потока
Результат AdminVPS в два потока
Результат AdminVPS в два потока

Эта команда заставит один поток CPU вычислять простые числа до 20 000 и замерит, сколько операций удаётся выполнить за фиксированный промежуток времени (как я уже сказал - 30 секунд). На выходе sysbench покажет ключевой показатель: events per second (операций в секунду), а также общее затраченное время. Я запускал тест в 1 поток, поскольку меня интересовала производительность одного ядра. Также ради интереса прогнал и многопоточный вариант (--num-threads=2 для 2 ядер), но основной упор делал – на одном потоке, прогонял его несколько раз.

Как интерпретировать результаты: Чем больше EPS, тем мощнее CPU. Современные высокочастотные ядра могут показывать и 500, и 1000+ events/sec в таком тесте. В контексте VPS нормальным можно считать результат около 300–600 events/sec на одно ядро (это значит, используются современные серверные CPU с частотой 3+ ГГц). Если же показатель еле дотягивает до 200 или того меньше, скорее всего, у вас либо очень слабое ядро, либо серьезно урезаны частоты (например, на бюджетных VPS такое бывает).

Вот такие результаты получились

Провайдер

Один поток

Два потока

Максиплэйс

596,83

1153,63

Таймвеб

373

375

AdminVPS

577

1144

3. Тест дисковой системы (fio) Битрикс Интернет Магазина

Битрикс активно работает с базой данных и файловой системой (кеш, загрузки, логи и пр.), поэтому скорость диска – критически важна. Я провел два вида тестов накопителей с помощью утилиты fio (Flexible I/O Tester): случайный мелкоблочный I/O (IOPS) и последовательная скорость чтения/записи.

IOPS (random I/O): проверяет, сколько операций ввода-вывода в секунду способна обработать дисковая подсистема при хаотичном доступе маленькими блоками. Это имитирует нагрузку типичной базы данных: много мелких чтений/записей из разных участков диска. Я выбрал размер блока 4 KB, шаблон смешанных чтений/записей (50/50) и несколько параллельных потоков для очереди запросов. Команда для запуска теста следующая:

fio --name=rand_io_test --filename=/tmp/fio_testfile --size=1G --direct=1 --ioengine=psync --rw=randrw --bs=4k --numjobs=4 --iodepth=32 --time_based --runtime=60 --group_reporting

Эта жутковатая строка создаёт 4 потока, которые в течение 60 секунд случайно читают и пишут блоки по 4К из файла размером 1 ГБ (перед тестом fio сам подготовил файл нужного размера). Ключевой результат – количество IOPS (Input/Output Operations Per Second) для чтения и для записи, а также средняя задержка на операцию. Нас интересует прежде всего суммарный IOPS: сколько десятков или сотен тысяч операций в секунду сможет достичь диск. Результат в таблице.

Провайдер

IOPS

Пропускная способность

Максиплэйс

60000

155 мб/сек

Таймвеб

3227

12 мб / сек

AdminVPS

45640

102 мб / сек

Результат Максиплэйс
Результат Максиплэйс
Результат Таймвеб
Результат Таймвеб
Результат AdminVPS
Результат AdminVPS

Последовательная пропускная способность: измеряет пропускную способность диска при чтении или записи крупных файлов. Это важно, например, при резервном копировании, импорте/экспорте данных, генерации больших отчетов и пр. Для теста последовательной чтения я запускал:

fio --name=seq_read_test --filename=/tmp/fio_seq_testfile --size=10G --direct=1 --ioengine=libaio --rw=read --bs=1M --iodepth=16 --numjobs=1 --time_based --runtime=30 --group_reporting 

(Аналогично с --rw=write для записи, заменяет --rw=read). Здесь я читал блоками по 1 МБ, практически последовательно проходясь по большому файлу. Результат – средняя скорость в MB/s. Показатель сравним со спецификациями дисков: SATA SSD в идеальных условиях дают ~500 MB/s, NVMe могут превосходить 1000–3000 MB/s. Конечно, в виртуальной среде цифры могут быть ниже из-за «соседей» и ограничений гипервизора. Я проводили несколько прогонов и брал стабильные значения после разогрева кэша.

Чтение Максиплэйс
Чтение Максиплэйс
Чтение Таймвеб
Чтение Таймвеб
Чтение AdminVPS
Чтение AdminVPS

Провайдер

Чтение

Запись

Максиплэйс

7,7 Гб/сек

1,4 Гб/сек

Таймвеб

9,8 Гб/сек

0,47 Гб/сек

AdminVPS

2,9 Гб/сек

0,5 Гб/сек

Запись Максиплэйс
Запись Максиплэйс
Запись Таймвеб
Запись Таймвеб
Запись AdminVPS
Запись AdminVPS

На что смотрим: для Bitrix предпочтительнее накопители типа NVMe, дающие высокие IOPS. Значения в десятки тысяч IOPS (и выше) для 4KB случайного чтения – это отличный результат, означающий, что база данных и файловый кеш будут работать быстро. Если же IOPS едва достигает нескольких тысяч – вероятно, используется SATA SSD среднего уровня (тоже приемлемо для небольших проектов, но узким местом при высоконагруженных сценариях может стать диск). Ну а совсем низкие IOPS (<1000) встречаются лишь на устаревших HDD или перегруженных хранилищах – для Битрикс такое противопоказано. По последовательной скорости: близкие к 500 MB/s цифры укажут на SATA SSD, а порядка 1000 MB/s и выше – признак NVMe или агрегированного RAID.

4. Тест базы данных MySQL (sysbench OLTP) Битрикс24 хостинга


Сердце 1С-Битрикс – это база данных (обычно MySQL/MariaDB). Производительность БД определяет скорость работы всего сайта: любые задержки на уровне SQL-запросов сразу отражаются на генерации страниц. Поэтому отдельное внимание – тесту OLTP (Online Transaction Processing) для MySQL. Он моделирует работу типичного веб-приложения с БД: смешанные запросы SELECT, UPDATE, INSERT в транзакциях, аналогично тому, как работают, например, корзина интернет-магазина или лента новостей. Для теста снова использую sysbench, но уже его модуль для БД. В моем случае стоит MySQL.

Как проводился тест OLTP: предварительно создаем тестовую базу данных и заполняем таблицы. Команда подготовки (создания таблицы):

sysbench --db-driver=mysql --mysql-socket=/var/lib/mysqld/mysqld.sock --mysql-user=test --mysql-password=password --mysql-db=test --table-size=1000000 oltp_read_write prepare

Эта команда генерит таблицу из 1 000 000 строк (порядка 200 МБ данных), имитируя достаточно крупную базу. После этого можно запускать непосредственно нагрузочный тест:

sysbench --db-driver=mysql --mysql-socket=/var/lib/mysqld/mysqld.sock --mysql-user=root --mysql-password=password --mysql-db=test --threads=8 --time=60 oltp_read_write run

Данный сценарий в течение 60 секунд выполняет транзакции (чтение и запись) с 8 параллельными потоками, что нагружает и процессор, и диск (субсистема БД). Почему 8 потоков: чтобы увидеть, как сервер справляется с некоторой конкуренцией запросов – это приближено к реальности, когда несколько пользователей одновременно работают с сайтом. По завершении теста sysbench выдает несколько метрик, из которых меня интересуют Transactions per second (транзакций в секунду) TPS – то есть сколько транзакций (включающих ряд SQL-операций) обрабатывалось в среднем в секунду. Также я смотрел на среднюю задержку на транзакцию.

Тест базы данных MySQL Максиплэйс
Тест базы данных MySQL Максиплэйс
Тест базы данных MySQL Таймвеб
Тест базы данных MySQL Таймвеб
Тест базы данных MySQL AdminVPS
Тест базы данных MySQL AdminVPS

Как понять результаты: Например, если видим 500 транзакций/сек – это значит, сервер в состоянии выполнять ~500 типовых операций в БД за секунду при указанной параллельности. Чем выше это число, тем лучше. Низкий результат (например, <100 TPS при 8 потоках) укажет либо на медленный диск (запросы «упираются» в диск), либо на CPU, не справляющийся с параллельной работой (или, возможно, малый объём ОЗУ, приводящий к кеш-промахам – но у меня везде по 5 ГБ, чего достаточно для 1 млн строк при разумных настройках InnoDB Buffer Pool). Я использовал стандартные настройки (без специальной оптимизации под 1 млн записей, это важно: буфер мог быть и не очень большим, что даже лучше – добавляет нагрузки на диск). 

Провайдер

TPS

Задержка

Максиплэйс

2335

3,42 мс

Таймвеб

382

20 мс

AdminVPS

694

11,52 мс

5. Тест веб-сервера (ApacheBench) Битрикс под Интернет Магазин


Конечная метрика, которая волнует владельца сайта (хотя, если владелец не технарь, то это больше волнует администратора сайта, а не владельца), – это сколько реальных веб-запросов в секунду способен обслужить сервер, и с какой скоростью будут открываться страницы у пользователей. Чтобы оценить это в контролируемых условиях, я применил инструмент ApacheBench (ab). Он позволяет сгенерировать определённое количество запросов к вашему сайту и измерить, за какое время сервер с ними справится, вычислив среднюю производительность в запросах/сек и среднее время ответа.

Мой сценарий: я симулировали нагрузку 10 одновременных пользователей, которые открывают главную страницу сайта. Для этого на отдельной машине (не на самом тестируемом VPS, а на своем буржуйском сервере, чтобы минимизировать сетевые задержки) выполнялась команда:

ab -n 500 -c 10 http://<адрес сайта>/  

Параметры: -n 500 означает в сумме 500 запросов, -c 10 – не более 10 параллельных соединений одновременно. Адрес указывает на главную страницу развернутого демо-сайта на Bitrix. Я специально отключили композитный режим и прочие кеши, чтобы каждый запрос генерировался движком заново, проходя полный цикл PHP+БД. По завершении ApacheBench выдал среднее число запросов в секунду (Requests per second) и среднее время ответа (Time per request). Эти две метрики как раз отражают, насколько хорошо сервер подходит для реальной нагрузки: RPS показывает пропускную способность по HTTP, а среднее время – ощущаемую задержку на одного пользователя при заданной конкуренции.

Тест веб-сервера Максиплэйс
Тест веб-сервера Максиплэйс
Тест веб-сервера Таймвеб
Тест веб-сервера Таймвеб

К сожалению куда то потерял последний скриншот от АдминВПС.

Как понять результаты: Если, к примеру, RPS = 50 при 10 одновременных пользователях, то в среднем каждый пользователь получает страницу раз в 0,2 с (что эквивалентно 5 страницам в секунду на каждого – более чем достаточно для обычного серфинга). 50 RPS суммарно значит ~3000 запросов/мин, или ~4,3 млн страниц в сутки теоретически – этого хватит большинству сайтов с запасом. Но для высоконагруженного портала 50 RPS может быть маловато: представьте какую нибудь акцию, когда одновременно 100 пользователей посещает страницу – тут уже очередь запросов и задержки вырастут. Поэтому чем больше RPS в тесте, тем больший наплыв посетителей выдержит сервер. Хорошим показателем для VPS среднего класса можно считать 100+ RPS при одновременных 10 пользователях. Если видим меньше 30–40 RPS, возможно, сервер под такой нагрузкой близок к пределу (для ресурсов Битрикс это признак слабого CPU или недостатка оптимизаций).

Провайдер

RPS

Максиплэйс

312

Таймвеб

193

AdminVPS

250

6. Поддержка Битрикс Хостинга

Как я уже говорил во вступлении, техническая поддержка важна, и я сейчас говорю не только про поддержку в вопросе - поменять тариф или помочь с какими то мелкими моментами, а прям про реальную помощь с администрированием и настройкой проекта. И вот тут, на рынке не так много игроков, которые могут этим похвастаться.

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

На первом месте Максиплейс - у меня возникло несколько накладок в процессе тестирования и мне очень быстро оказали помощь, даже подсказали где были ошибки и как сделать лучше. Сразу оговорюсь - никаких дополнительных договоренностей не было, я просто пришел с улицы и попросил на тест сервак, все. Даже денег не заплатил. Вовлеченность меня удивила. Не часто встретишь подобное. Скорость решения вопроса - быстрая, компетентность - высокая.

На втором месте Таймвеб. Несмотря на то, что они провалили практически все тесты, но в вопросе поддержки были на уровне. Отклик был чуть подольше по времени, чем Максиплейс, да и тот факт, что пришлось пару раз сбросить пароль от сервера сыграл не в пользу компетентности, но вопрос был решен. Скорость средняя, компетентность выше среднего.

AdminVPS - совсем меня не порадовал, хотя по тестам шел очень неплохо. Мне показалось, что тут все сделано таким образом, чтобы максимально дистанцироваться от пользователя и позволить ему самому развиваться и прокачиваться в решении проблем. Нужна поддержка -сначала почитай FAQ, если не понял - ну ок, давай попробуем. До технической помощи я так и не дошел - меня отпугнула строка - ответ будет дан не раньше чем через 2 часа, и я каждый раз хотел нажать, но потом у меня возникала очередная идея, что я упустил, я шел это пробовать и в итоге, время уходило и уходило. Короче сложно оценить, но тот факт что я ни разу не нажал на кнопку дает понимание, что тактика то сработала - пользователь решает вопросы сам. Хорошо это или плохо - решать вам! Как говорится - на словах ты Лев Толстой, а на Деле не совсем и AdminVPSв вопросах администрирования, а скорее “AdminVPS yoursefl”

Сравнительная таблица - какой 1C-Битрикс VPS хостинг лучше - решать уже вам

Провайдер

Тип диска

Показатель производительности

Тест CPU 1 / 2 потока

IOPS/Пропускная способность

Чтение

Запись

Пропускная способность

1

Maxi­place

NVMe

190

563 / 1 154

60000 / 155

7.7 GB/s / 1.4 GB/s

2 335

312

2

Таймвеб

NVMe

140

373 / 375

3227 / 12

9,8 GB/s / 0.47 GB/s

382

193

3

AdminVPS

NVMe

160

577 / 1144

45640 / 102

2.9 GB/s / 0.5 GB/s

694

250

Баланс вычислений против I/O

Что в итоге? В итоге видно даже невооруженным глазом, что Maxi­place удерживает лидерство по всем показателям (правда один раз он уступил первое место Таймвебу - по скорости чтения). За исключением скорости записи, Таймвебу собственно и нечем похвастаться, все показатели довольно посредственные, для такой конфигурации. AdminVPS занимает уверенное второе место, с достаточно приличными показателями.

1 - Что насчет цены: Я сознательно не акцентировали внимание на ценах в самом начале статьи, но в реальности бюджет тоже влияет на выбор. В контексте Bitrix дешевле – не всегда значит выгоднее (и ниже вы поймете почему): экономия в 200–300 рублей в месяц может обернуться потерянными клиентами из-за медленной работы сайта. 

В среднем, рассмотренная комплектация сервера является не самой топовой по производительности, до потолка там еще далековато. Ценник такой:

  • Максиплэйс - 2700

  • Таймвеб - 1700

  • AdminVPS - 2400

Кстати, Максиплэйс и AdminVPS в стоимость включили поддержку и администрирование, но на проверку вышло что реальное администрирование и поддержка была только у Максиплэйса. Не знаю, связано ли это с тем, что я ни копейки не заплатил или нет, может за деньги Да? Но тут уже история умалчивает.

Платформа 1С-Битрикс предъявляет высокие требования к хостингу, но современный рынок VPS в России готов их удовлетворить. При правильно подобранном VPS сайт на Bitrix может работать очень быстро – главное, знать, куда смотреть. Обязательно тестируйте сервера в боевых условиях. Не забывайте оптимизировать сам Bitrix (включать кеширование, чистить неиспользуемые модули) – железо железом, а хороший разработчик может ускорить сайт.

В конечном счёте, «идеальный» VPS под Bitrix – тот, который соответствует масштабам и задачам вашего проекта. 

Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
+1
Комментарии3

Публикации

Работа

Ближайшие события