Как стать автором
Обновить
0
VDSina.ru
Серверы в Москве и Амстердаме

Как запустить Hi-CPU VDS для Битрикса, разогнать попугаев и не разориться

Время на прочтение12 мин
Количество просмотров6.1K
Мало хостеров предлагает тарифы VDS с высокой тактовой частотой процессора, хотя кажется, что всё просто: вставил в сервер i9 помощнее, настроил биллинг и готово.

Когда мы готовили тарифы Hi-CPU, то выяснили, что:

  • серверы с i9 потребляют тонны электричества
  • поймать баланс и сделать выгодный тариф на качественном железе непросто
  • ЦОДы предпочитают с таким не связываться

Рассказываем, как мы справились с этим и запустили Hi CPU.



Зачем нужен Hi-CPU


Мы готовили идеальный тариф под Битрикс. Почему?
Конечно, из-за денег.



По данным CMS iTrack, половина всех сайтов, сделанных на CMS — WordPress и лишь 11,68% сайтов используют Битрикс. Однако по рейтингу CMS Magazine, коммерческих сайтов использующих Битрикс в два раза больше, чем WordPress. Большая часть сайтов на WordPress — блоги, личные сайты и прочие визитки.

Битриксом пользуются тысячи российских компаний, готовые платить за качественный VDS. И многим нужны Hi-CPU решения, которых на рынке не хватает: чаще всего, хостеры предлагают тарифы с частотой процессора 2-3 гигагерца — подходят для повседневных задач, но для скоростной обработки множества мелких уже недостаточно. Особенно, если хостер не борется с оверселлом процессорного времени.

Так что верным способом стать качественным Битрикс-хостингом было сделать выгодный Hi-CPU тариф и стать featured-partner — попасть в рейтинг рекомендуемых хостеров, который составляет сам Битрикс.

Подготовка: первоначальное тестирование


Для начала мы проверили, сколько Битрикс-попугаев выдает сборка на стандартном тарифе. Процессор — Intel Scalable Xeon Silver 4116. Получили 107 попугаев.


Аналогичная сборка доступна и сегодня, от 2 рублей в день.

Intel Scalable Xeon Silver 4116 неплохо справляется с типичными VDSовскими задачами, но для Битрикса нужно что-то помощнее, особенно, если цель — попасть на вершину рейтинга.



Поиск мощного железа для попугаев


Первое, что надо сделать — взять процессор с большей частотой: в основном растит попугаев именно частота процессора.

Сначала рассматривали самосбор на основе Intel Core i9-9900K S1151. Некоторые коллеги так и делают и попугаев у них выходит даже больше, чем на серверных процессорах. Однако, как мы упоминали, топовые i9 и сборки на их основе потребляют столько энергии, что пришлось бы либо задрать цену, либо разориться на счетах за электричество. Да и ЦОД был не в восторге: потребовал организовать дополнительное охлаждение стоек и инженеров для настройки и обслуживания самосбора (и дополнительное охлаждение инженеров).

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

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

Оптимальным вариантом показалось найти MicroCloud в 3U. По сути, это 12 серверов в одном, что позволяет в 4 раза экономить место в стойке при той же производительности. Серверы выбирали в ноябре 2018 года и тогда решений в 3U было не так уж много, выбор почти сразу пал на Supermicro SuperServer 5039MS-H12TRF.


Он состоит из двенадцати отдельных нод


Каждая нода это по сути отдельный сервер. У нас другая сборка, чем на картинке, но принцип тот же.

Сердцем выбрали Intel Xeon E3-1270 v6. Опирались на опыт: мы уже использовали этот процессор на платформе Dell R330 для других высоконагруженных проектов. E3-1270 ещё ни разу не подводил, цена и качество нас устраивали.

Для начала купили только один Microcloud: он стоит в районе 20 тысяч долларов, а свободных денег было не так много. Оно и к лучшему: на рынке постоянно появляются новые, более эффективные и недорогие решения. К тому моменту, как появились деньги на новый сервер, мы проанализировали рынок заново.

Первая проблема при установке


Первый MicroCloud доставили через неделю после заказа. Уже в ЦОДе оказалось, что он не помещается в стойку. Мы хотели поставить его к серверам 1U, но направляющие в стойке расположены так, что Microcloud банально не входил. Чтобы его поместить, пришлось бы устроить даунтайм для других серверов и сдвинуть направляющие.

Решили повременить с запуском и поставить Microcloud в новую стойку. Это оказалось оптимальным решением: энергопотребление и тепловыделение у MicroCloud отличается от обычных серверов. Да и сетевое оборудование со своими особенностями.


Теперь MicroCloud’ы живут в отдельной стойке

В MicroCloud планировали установить десяти-гигабитные сетевые карты, чтобы как следует разогнать миграцию VDS-контейнеров. Этот трюк мы уже проделывали с 1U серверами, но с MicroCloud всё оказалось сложнее.

Десяти-гигабитные сетевые карты для MicroCloud серверов оказались большой редкостью. Мы заказывали Low Profile AOM-CTGS-i2TM MicroLP, ждали пару месяцев и получили ответ: «извините, производитель редко сталкивается с подобными заказами. Карты будут готовы через полгода». От идеи пришлось отказаться: пока хватает стандартных гигабитных карт, но в будущем мы ещё раз попытаемся купить десяти-гигабитные.


Немного гикпорно: вот так собирают MicroCloud’ы

Настройка шаблона и заявка в Битрикс


Изначально мы собрали шаблон с уклоном на Битрикс, но и удобством для остальных CMS: например, добавили нестандартную для Vesta конфигурацию с выбором версии PHP. Всю конфигурацию и оптимизацию делали на схеме apache + mod_fcgi. Параметры подбирали так, чтобы они давали лучший усреднённый результат для всех тарифов.

Производительность Битрикса зависит напрямую от тактовой частоты процессора. В среднем частота процессоров для тарифов Hi-CPU была на 40-50% больше, чем у процессоров, обслуживающих обычные тарифы. Результаты замеров коррелировали: минимум на 30% больше производительности при высокой нагрузке на сервер, около 60% — в «хорошую погоду».



Эти цифры мы получили на тарифе, который стоит 26,6 рублей в день

Когда всё отладили, зарегистрировались на сайте для партнеров Битрикса и заполнили заявку, к которой прикрепили данные с VDS с шаблоном, оптимизированным под Битрикс.

Война за первое место в рейтинге


Результаты производительности подтвердились, но итоговая оценка оказалась ниже, чем мы рассчитывали: рейтинг учитывает не только производительность, но и абсолютную стоимость тарифа и наличие тестового периода.



И мы осознанно отказались от борьбы за первое место в рейтинге по двум причинам.

Цена и здравый смысл


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

Почему отказались от бесплатного тестового периода


Отсутствие бесплатного тестового периода не дало нам попасть на первую строчку рейтинга, но у нас была серьезная причина от него отказаться. Почему? Потому что мы ориентированы на сервис.

Создавая VDSina мы делаем ставку на удобство: регистрация должна проходить на лету, без капчи (от у нас неё изжога), проверки паспортных данных и подтверждения номера телефона. Ввёл почту, пополнил баланс на 30 рублей и VDS разворачивается за 60 секунд — для нас это вопрос принципа.

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

При такой схеме борьбы с халявщиками страдают нормальные клиенты и мы принципиально не хотим грузить их в общем-то нашей проблемой.

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

Пока наши клиенты довольны таким раскладом и мы тоже.

Тесты производительности наших Hi CPU





Подробности тестирования
BYTE UNIX обычный VDS

==================================================================
BYTE UNIX Benchmarks (Version 5.1.3)

System: v148399.hosted-by-vdsina.ru: GNU/Linux
OS: GNU/Linux — 3.10.0-957.5.1.el7.x86_64 — #1 SMP Fri Feb 1 14:54:57 UTC 2019
Machine: x86_64 (x86_64)
Language: en_US.utf8 (charmap=«UTF-8», collate=«UTF-8»)
CPU 0: Common KVM processor (4394.9 bogomips)
x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
CPU 1: Common KVM processor (4394.9 bogomips)
x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
10:42:54 up 21 min, 1 user, load average: 0,07, 0,21, 0,21; runlevel 3

— Benchmark Run: Ср сен 11 2019 10:42:54 — 11:10:59
2 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables 26770638.9 lps (10.0 s, 7 samples)
Double-Precision Whetstone 4222.7 MWIPS (9.8 s, 7 samples)
Execl Throughput 1763.2 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 226998.4 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 60299.3 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 702987.3 KBps (30.0 s, 2 samples)
Pipe Throughput 315773.1 lps (10.0 s, 7 samples)
Pipe-based Context Switching 85613.2 lps (10.0 s, 7 samples)
Process Creation 5140.5 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 3570.0 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 730.3 lpm (60.1 s, 2 samples)
System Call Overhead 293013.8 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 26770638.9 2294.0
Double-Precision Whetstone 55.0 4222.7 767.8
Execl Throughput 43.0 1763.2 410.1
File Copy 1024 bufsize 2000 maxblocks 3960.0 226998.4 573.2
File Copy 256 bufsize 500 maxblocks 1655.0 60299.3 364.3
File Copy 4096 bufsize 8000 maxblocks 5800.0 702987.3 1212.0
Pipe Throughput 12440.0 315773.1 253.8
Pipe-based Context Switching 4000.0 85613.2 214.0
Process Creation 126.0 5140.5 408.0
Shell Scripts (1 concurrent) 42.4 3570.0 842.0
Shell Scripts (8 concurrent) 6.0 730.3 1217.2
System Call Overhead 15000.0 293013.8 195.3
========
System Benchmarks Index Score 552.6

— Benchmark Run: Ср сен 11 2019 11:10:59 — 11:39:17
2 CPUs in system; running 2 parallel copies of tests

Dhrystone 2 using register variables 50497275.9 lps (10.0 s, 7 samples)
Double-Precision Whetstone 8233.3 MWIPS (9.8 s, 7 samples)
Execl Throughput 3435.3 lps (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 386580.4 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 102199.5 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 1187846.7 KBps (30.0 s, 2 samples)
Pipe Throughput 614216.9 lps (10.0 s, 7 samples)
Pipe-based Context Switching 168877.2 lps (10.0 s, 7 samples)
Process Creation 11055.3 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 5620.2 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 804.7 lpm (60.1 s, 2 samples)
System Call Overhead 561793.2 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 50497275.9 4327.1
Double-Precision Whetstone 55.0 8233.3 1497.0
Execl Throughput 43.0 3435.3 798.9
File Copy 1024 bufsize 2000 maxblocks 3960.0 386580.4 976.2
File Copy 256 bufsize 500 maxblocks 1655.0 102199.5 617.5
File Copy 4096 bufsize 8000 maxblocks 5800.0 1187846.7 2048.0
Pipe Throughput 12440.0 614216.9 493.7
Pipe-based Context Switching 4000.0 168877.2 422.2
Process Creation 126.0 11055.3 877.4
Shell Scripts (1 concurrent) 42.4 5620.2 1325.5
Shell Scripts (8 concurrent) 6.0 804.7 1341.2
System Call Overhead 15000.0 561793.2 374.5
========
System Benchmarks Index Score 979.3

BYTE UNIX старый Hi-CPU VDS

==================================================================
BYTE UNIX Benchmarks (Version 5.1.3)

System: v148401.hosted-by-vdsina.ru: GNU/Linux
OS: GNU/Linux — 3.10.0-957.5.1.el7.x86_64 — #1 SMP Fri Feb 1 14:54:57 UTC 2019
Machine: x86_64 (x86_64)
Language: en_US.utf8 (charmap=«UTF-8», collate=«UTF-8»)
CPU 0: Common KVM processor (6624.1 bogomips)
x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
CPU 1: Common KVM processor (6624.1 bogomips)
x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
14:01:52 up 3:40, 1 user, load average: 0,00, 0,07, 0,07; runlevel 3

— Benchmark Run: Ср сен 11 2019 14:01:52 — 14:30:53
2 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables 41165945.1 lps (10.0 s, 7 samples)
Double-Precision Whetstone 3454.8 MWIPS (15.4 s, 7 samples)
Execl Throughput 2102.9 lps (29.6 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 323989.0 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 88536.1 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 1090490.9 KBps (30.0 s, 2 samples)
Pipe Throughput 456730.9 lps (10.0 s, 7 samples)
Pipe-based Context Switching 126170.4 lps (10.0 s, 7 samples)
Process Creation 6282.5 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 5172.3 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 1122.8 lpm (60.0 s, 2 samples)
System Call Overhead 426422.9 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 41165945.1 3527.5
Double-Precision Whetstone 55.0 3454.8 628.1
Execl Throughput 43.0 2102.9 489.1
File Copy 1024 bufsize 2000 maxblocks 3960.0 323989.0 818.2
File Copy 256 bufsize 500 maxblocks 1655.0 88536.1 535.0
File Copy 4096 bufsize 8000 maxblocks 5800.0 1090490.9 1880.2
Pipe Throughput 12440.0 456730.9 367.1
Pipe-based Context Switching 4000.0 126170.4 315.4
Process Creation 126.0 6282.5 498.6
Shell Scripts (1 concurrent) 42.4 5172.3 1219.9
Shell Scripts (8 concurrent) 6.0 1122.8 1871.4
System Call Overhead 15000.0 426422.9 284.3
========
System Benchmarks Index Score 753.4

— Benchmark Run: Ср сен 11 2019 14:30:53 — 15:00:04
2 CPUs in system; running 2 parallel copies of tests

Dhrystone 2 using register variables 73510146.2 lps (10.0 s, 7 samples)
Double-Precision Whetstone 6546.6 MWIPS (16.2 s, 7 samples)
Execl Throughput 5306.0 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 580128.9 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 149810.9 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 1896766.5 KBps (30.0 s, 2 samples)
Pipe Throughput 891359.8 lps (10.0 s, 7 samples)
Pipe-based Context Switching 245363.7 lps (10.0 s, 7 samples)
Process Creation 17811.2 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 8446.7 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 1147.3 lpm (60.0 s, 2 samples)
System Call Overhead 831002.3 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 73510146.2 6299.1
Double-Precision Whetstone 55.0 6546.6 1190.3
Execl Throughput 43.0 5306.0 1234.0
File Copy 1024 bufsize 2000 maxblocks 3960.0 580128.9 1465.0
File Copy 256 bufsize 500 maxblocks 1655.0 149810.9 905.2
File Copy 4096 bufsize 8000 maxblocks 5800.0 1896766.5 3270.3
Pipe Throughput 12440.0 891359.8 716.5
Pipe-based Context Switching 4000.0 245363.7 613.4
Process Creation 126.0 17811.2 1413.6
Shell Scripts (1 concurrent) 42.4 8446.7 1992.1
Shell Scripts (8 concurrent) 6.0 1147.3 1912.1
System Call Overhead 15000.0 831002.3 554.0
========
System Benchmarks Index Score 1391.3

BYTE UNIX Hi-CPU VDS

==================================================================
BYTE UNIX Benchmarks (Version 5.1.3)

System: v148401.hosted-by-vdsina.ru: GNU/Linux
OS: GNU/Linux — 3.10.0-957.5.1.el7.x86_64 — #1 SMP Fri Feb 1 14:54:57 UTC 2019
Machine: x86_64 (x86_64)
Language: en_US.utf8 (charmap=«UTF-8», collate=«UTF-8»)
CPU 0: Common KVM processor (6624.1 bogomips)
x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
CPU 1: Common KVM processor (6624.1 bogomips)
x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
10:42:58 up 21 min, 1 user, load average: 0,03, 0,07, 0,06; runlevel 3

— Benchmark Run: Ср сен 11 2019 10:42:58 — 11:12:20
2 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables 50496763.2 lps (10.0 s, 7 samples)
Double-Precision Whetstone 3290.3 MWIPS (18.2 s, 7 samples)
Execl Throughput 3416.6 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 419298.9 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 105903.4 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 1417343.7 KBps (30.0 s, 2 samples)
Pipe Throughput 539629.9 lps (10.0 s, 7 samples)
Pipe-based Context Switching 152917.5 lps (10.0 s, 7 samples)
Process Creation 10424.5 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 7237.0 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 1502.7 lpm (60.0 s, 2 samples)
System Call Overhead 495647.5 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 50496763.2 4327.1
Double-Precision Whetstone 55.0 3290.3 598.2
Execl Throughput 43.0 3416.6 794.6
File Copy 1024 bufsize 2000 maxblocks 3960.0 419298.9 1058.8
File Copy 256 bufsize 500 maxblocks 1655.0 105903.4 639.9
File Copy 4096 bufsize 8000 maxblocks 5800.0 1417343.7 2443.7
Pipe Throughput 12440.0 539629.9 433.8
Pipe-based Context Switching 4000.0 152917.5 382.3
Process Creation 126.0 10424.5 827.3
Shell Scripts (1 concurrent) 42.4 7237.0 1706.8
Shell Scripts (8 concurrent) 6.0 1502.7 2504.5
System Call Overhead 15000.0 495647.5 330.4
========
System Benchmarks Index Score 966.0

— Benchmark Run: Ср сен 11 2019 11:12:20 — 11:41:45
2 CPUs in system; running 2 parallel copies of tests

Dhrystone 2 using register variables 101242206.9 lps (10.0 s, 7 samples)
Double-Precision Whetstone 6543.9 MWIPS (18.3 s, 7 samples)
Execl Throughput 7095.4 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 793174.9 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 203939.8 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 2721785.9 KBps (30.0 s, 2 samples)
Pipe Throughput 1072159.2 lps (10.0 s, 7 samples)
Pipe-based Context Switching 307924.6 lps (10.0 s, 7 samples)
Process Creation 23097.3 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 11354.9 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 1585.1 lpm (60.1 s, 2 samples)
System Call Overhead 979658.1 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 101242206.9 8675.4
Double-Precision Whetstone 55.0 6543.9 1189.8
Execl Throughput 43.0 7095.4 1650.1
File Copy 1024 bufsize 2000 maxblocks 3960.0 793174.9 2003.0
File Copy 256 bufsize 500 maxblocks 1655.0 203939.8 1232.3
File Copy 4096 bufsize 8000 maxblocks 5800.0 2721785.9 4692.7
Pipe Throughput 12440.0 1072159.2 861.9
Pipe-based Context Switching 4000.0 307924.6 769.8
Process Creation 126.0 23097.3 1833.1
Shell Scripts (1 concurrent) 42.4 11354.9 2678.1
Shell Scripts (8 concurrent) 6.0 1585.1 2641.9
System Call Overhead 15000.0 979658.1 653.1
========
System Benchmarks Index Score 1793.6


Планы на будущее


Недавно к нам пришёл уже четвертый по счету сервер. На этот раз — Supermicro MicroCloud с 12 x Xeon E-2136, 48 x DDR4 16Gb и 12 x 1TB NVME P4510.


В среднем, производительность нового MicroCloud на 8-10% больше братьев по стойке


Новый MicroCloud уже ввели в эксплуатацию, и теперь мы строим планы по экспансии Hi-CPU в Нидерланды и другие страны. У нас работают серверы для обычных тарифов в двух нидерландских ЦОДах, но когда встаёт вопрос о чём-то посложнее 1U-сервера, то приходится пройти через 9 кругов согласований.

Но это уже другая история.

Теги:
Хабы:
Всего голосов 13: ↑12 и ↓1+11
Комментарии13

Публикации

Информация

Сайт
vdsina.ru
Дата регистрации
Дата основания
Численность
11–30 человек
Местоположение
Россия
Представитель
Mikhail

Истории