Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
„Вы говорите, что выбирать надо из двух зол?! Тоже мне ассортимент!“
Веслав Брудзиньский
Выбор провайдера хостинга и виртуального сервера конечно же не ограничивается двумя вариантами – на рынке десятки дата-центров, выбор нетривиален и вот почему. В тарифах провайдеров услуг изначально нет полной информации о типах процессоров, памяти, дисках, их производительности, о канале связи и т.д. Более того, даже открытые данные не приведены, как говорится к одному знаменателю с тем, чтобы их можно было сравнить. Поэтому перед нами всегда стоит вопрос: как понять что из себя представляют те или иные услуги и как сделать правильный выбор? К примеру, стоимость виртуального сервера у одного провайдера в 4 раза выше, чем у другого – это говорит о жадности хостера или высоком качестве услуг?
Дабы разобраться в теме сделаем тест-драйв провайдеров и проведем сравнение сопоставимых услуг. Столкнем лбами 13 компаний. Мы взяли представителей разных ниш, отличающихся, как широтой услуг, так и ценами, с тем, чтобы выборка была репрезентативной и показала срез рынка. Итак, разместим хостеров в алфавитном порядке:
Beget
Digital Ocean (DO)
Firstbyte
Firstvds
ITSOFT
Leaseweb
Linode
REG.RU
Ruvds
Selectel
Skyhost
Sweb
Yandex
Но прежде чем сравнивать, укажем что данное сравнение дает? А дает исследование следующее:
представление о рынке и уровне конкуренции;
рекомендации по рациональному использованию денег;
возможность выбора необходимой конфигураций VDS;
показывает наиболее производительное сочетание ресурсов CPU/RAM;
позволяет исключить ошибки при смене тарифа или провайдера;
возможность сравнения VDS с обычными серверами и другими решениями.
Замечание: мы не рассматриваем особенности и различия виртуальных машин VDS, VPS и других облачных решений и для простоты все их будем называть VDS.
Итак начнем
А) Методика расчета тарифов
В исходных данных мы имеем только стоимость всей конфигурации VDS. Так как не все провайдеры разбивают их на составляющие, то это довольно скудная информация, которая не дает нам четкого представления о том, за что мы собственно платим. Чтобы дать представление об этих параметрах, в рамках нашей модели мы учитываем каждый элемент, а именно CPU — RAM — Storage — Network с равным весом – по 25%. При необходимости вы можете модифицировать коэффициенты под ваши потребности и получить результаты уже со своими данными.
Для приведения любой конфигурации к общему знаменателю, что очень важно, надо иметь эталон, относительно которого мы будем производить сравнение. Поэтому мы брали значения тарифов и пересчитывали их так, чтобы их можно было сравнивать между собой по цене относительно эталона (Reference price в таблицах ниже). В качестве эталона мы остановились на следующей конфигурации:
Память RAM, | Процессор CPU, количество ядер | Диск Storage, | Канал связи |
1 | 1 | 25 | 1 |
Б) Метод расчета производительности
В качестве основы мы выбрали дистрибутив Ubuntu (20.04) – это бесплатное ПО со множеством готовых решений, которое позволяет тестировать VDS со множеством параметров, без дополнительных лицензий.
Выбранное программное обеспечение вы можете также установить и использовать на других дистрибутивах Linux (CentOS, Debian, Arch и др.). Давайте рассмотрим утилиты, на которых мы остановились:
1. Процессор Phoronix Test Suite, build-linux-kernel. Phoronix Test Suite – огромный набор тестовых программ под разные задачи, здесь можно найти множество полезных утилит, но мы остановились на build-linux-kernel, которая измеряет скорость сборки ядра Linux. Мы хотели взять утилиту, которая будет выполнять задачи, подобные тому что выполняют многие пользователи регулярно на своих машинах, начиная с простых вычислений, например, установкой и запуском программ, и заканчивая итерациями посложнее – их компиляцией и сборкой.
2. Память Lmbench. Основная особенность данной программы заключается в записи в память блоков разного размера за одну итерацию и способности показать отличия в производительности разных конфигураций на одной и той же аппаратной части. Она измеряет множество значений, из которых мы выбрали пропускную способность памяти при выполнении последовательного чтения данных (Memory read bandwidth), последовательной записи данных (Memory write bandwidth), выборочного чтения и записи данных вместе (Memory partial read/write bandwidth), так как прежде всего именно эти значения отражают способность быстрого доступа к информации в/из памяти.
3. Диски fio. Данная программа выполняет нагрузку на дисковую подсистему, отображая показатели скорости нужного типа операций в IOPS. Мы измеряли значения по чтению, записи, чтению и записи совместно (по соотношению 50/50), руководствуясь параметрами доступа к информации на дисках.
4. Сеть speedtest-cli. Программа измеряет скорость сети. Мы остановились на значении исходящей скорости, так как передача данных клиентам на серверах и VDS происходит гораздо чаще, чем операции скачивания, и этот параметр обычно всегда ниже входящей скорости.
При расчете производительности, мы сталкиваемся с той же проблемой сравнения – показатели нужно привести к общему знаменателю, поэтому мы пересчитываем полученные измерения по отношению к лучшим результатам, которые в данном случае выполняют роль эталона и берутся за 100%. Вынесем их отдельно:
RAM, Lmbench MAX | CPU, PTS MIN | Storage, Fio MAX | Network, Speedtest MAX |
54511 | 245 | 142544 | 2,935 |
Теперь мы можем уже сравнивать и технические показатели VDS между собой (Score в таблицах ниже).
Общий знаменатель
Чтобы объединить показатели производительности и цены, разделим первое значение на второе. (Effective score per в таблицах ниже). Данный показатель отражает то, что мы называем эффективностью VDS (производительность VDS за его стоимость), его мы и будем использовать при сравнении провайдеров в итоговой таблице.
Тестирование
1. Процессор
Программа делает три измерения и высчитывает среднее значение, которое указано в таблице ниже (CPU, PTS). При сильных расхождениях делается до десяти измерений.
Краткая инструкция к установке и тестированию:
wget http://phoronix-test-suite.com/releases/repo/pts.debian/files/phoronix-test-suite_10.0.1_all.deb
apt install gdebi-core
gdebi phoronix-test-suite_10.0.1_all.deb
phoronix-test-suite install build-linux-kernel
phoronix-test-suite run build-linux-kernel
Путь, где хранятся файлы по умолчанию: /var/lib/phoronix-test-suite/test-results/
2. Память
Программа делает множество измерений разных блоков. Чем больше объем памяти, тем больше измерений. Мы остановились на значениях 8-ми блоков от 1 до 134 Мб. При конфигурации в 1 Гб памяти максимальное значение блока достигло 134 Мб, поэтому его мы и взяли за верхний порог. При небольших значениях учитывается только кэш процессора, а так как значение кэша процессоров у всех разное, мы приняли решение начать с 1 Мб, чтобы показать влияние на результаты более качественного железа, но при этом минимизировать зависимость от кэша процессора. Для проверки измерений на сильное влияние кэша процессора мы дополнительно провели сравнение с вычислением среднего значения от трех последних измерений. Зависимость сохранялась и поэтому мы приняли решение остановиться на восьми, чтобы погрешности было меньше:
Далее мы производили расчет среднего значения от восьми измерений (в случае с 512 Мб, бралось среднее из 7 измерений). Вычисляли три таких значения и рассчитывали среднее от них, оно и представлено в таблице ниже (RAM, Lmbench).
Краткая инструкция по установке и тестированию:
apt install lmbench
mkdir /var/tmp/lmbench
lmbench-run
При каждом запуске будет задан ряд вопросов для настройки тестов (указаны те, что мы использовали): MULTIPLE COPIES [default 1]: 3
Задаем количество одновременно запущенных тестов при использовании нескольких процессоров или ядер.
Job placement selection [default 1]: Определяем способ распределения задач по процессорным ядрам. Если нет особых требований, лучше оставить это системному планировщику (вариант по умолчанию).
MB [default 5562]: 6554
Количество доступной оперативной памяти. Не более 80% от общего количества памяти системы.
SUBSET (ALL|HARDWARE|OS|DEVELOPMENT) [default all]: Выбор используемого набора тестов: все, оборудование, операционная система, разработка.
FASTMEM [default no]: yes
Включение режима быстрой проверки памяти. В нем используется упрощенное измерение задержек ОЗУ (шаг данных при тестировании начиная с 128 байт). При размере кэша процессора больше 128 байт, тестирование с меньшим шагом бессмысленно.
SLOWFS [default no]: Включение режима проверки медленных файловых систем. При тестировании жестких дисков с древними файловыми системами процесс может затянуться и там эта опция нужна. При тестировании ОЗУ не используется.
DISKS [default none]: Указание тестируемых жестких дисков (/dev/sda и т.д.). По умолчанию тестирование выключено. Нас интересует только ОЗУ.
REMOTE [default none]: Настройка тестирования сети. По умолчанию выключено.
Processor mhz [default 1800 MHz, 0.1402 nanosec clock]: 2200
Задание частоты процессора. Определяется тестом автоматически, однако, не всегда верно. Если значение по умолчанию не соответствует реальности, указываем частоту вручную.
FSDIR [default /var/tmp/lmbench]: Задание папки для временных файлов, необходимых при тестировании. Свободного места на диске с этой папкой должно быть не меньше указанного выше количества доступной оперативной памяти и указанная папка должна быть создана юзером вручную, иначе тест выдаст соответствующую ошибку.
Status output file [default /dev/tty]: Место назначения для вывода сообщений в процессе выполнения тестов. По умолчанию - консоль.
Mail results [default yes]: no
Отправка результатов в онлайновую базу данных. Путь, где хранятся файлы по умолчанию: /var/lib/lmbench/results/
3. Диски
Здесь мы вычисляли среднее значение трех измерений каждого типа данных. Полученные значения по трем типам данных складывали вместе и вычисляли уже среднее значение, оно и указано в таблицах ниже (Storage, Fio).
Допущение: для конфигурации машины с 512Мб у RUVDS использовался iozone, т.к. fio бы заблокирован с их стороны, измерения проводились аналогичным образом.
Краткая инструкция по установке и тестированию:
apt install fio
Для смешанных операций записи и чтения по 50%:
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=fiotest --filename=testfio --bs=4k --iodepth=64 --size=8G --readwrite=randrw --rwmixread=50
Для операций чтения:
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=fiotest --filename=testfio --bs=4k --iodepth=64 --size=8G --readwrite=randread
Для операций записи:
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=fiotest --filename=testfio --bs=4k --iodepth=64 --size=8G --readwrite=randwrite
Вы можете записывать эти данные в файл, например, дописывая > disk в конце каждой команды.
4. Сеть
Здесь мы определяли среднее значение трех измерений исходящей скорости.
Краткая инструкция по установке и тестированию:
apt install speedtest-cli
speedtest
Вы можете записывать эти данные в файл, например, дописывая > network_speed в конце команды.
Итоговые таблицы результатов с разбивкой по провайдерам
Все значения мы собрали в таблицы, где указаны следующие данные:
а) Конфигурации тарифов
RAM, Gb – количество оперативной памяти в Гб
vCPU, Cores – количество виртуальных ядер процессора
Storage, GB – объем жесткого диска в Гб
Network Out, Gbit/s – исходящая скорость интернет соединения в Гбит/с
Price, $ – стоимость услуги в долларах (по курсу 1$ = 77 рублей)
б) значения измерений
RAM, Lmbench – производительность памяти
CPU, PTS – производительность процессора
Storage, Fio – производительность дисков
Network, Speedtest – производительность сети
в) расчетные данные
Reference price, $ – нормализованная стоимость услуги по эталону в долларах;
Score - приведенная производительность, в сотых долях (%);
Effective score per $ – эффективность VDS (производительность за стоимость).
Исследование помогло и нам самим провести работу над ошибками. Скорректировали цены по некоторым позициям (в сторону снижения), что порадовало потребителей.
Важное замечание: материал предлагает, если так можно сказать критически подойти к выбору провайдера и конкретной конфигурации виртуальной машины. Цены могут со временем меняться, поэтому не стоит делать упор на то, что сейчас у той или иной компании услуга стоит дороже или дешевле. Мы предлагаем методологию, которая со временем не утратит свою актуальность. Более того, на ее основе вы сможете выработать свое практическое пособие (будем рады, если поделитесь им с нами или в комментариях). Эту мысль мы также подчеркиваем и в резюме, поскольку считаем ее крайне важной.
Приведем пример с полученными данными нашей компании:
ITSOFT
RAM, GB | vCPU, Cores | Storage, GB | Network Out, Gb/s | Price, $ | RAM, Lmbench | CPU, PTS | Storage, Fio | Network, Speedtest | Reference price, $ | Score | Effective score per $ |
1 | 1 | 16 | 1 | 5 | 9040 | 2422 | 46211 | 0,725 | 5,70 | 0,21 | 0,037 |
2 | 2 | 32 | 1 | 10 | 18400 | 1198 | 55711 | 0,723 | 6,95 | 0,29 | 0,042 |
4 | 4 | 64 | 1 | 20 | 25986 | 560 | 60011 | 0,736 | 9,45 | 0,40 | 0,042 |
8 | 6 | 96 | 1 | 33 | 25115 | 384 | 60689 | 0,735 | 12,80 | 0,44 | 0,035 |
Остальные данные 12-ти компаний можно посмотреть под катом.
Linode
RAM, GB | vCPU, Cores | Storage, GB | Network Out, Gb/s | Price, $ | RAM, Lmbench | CPU, PTS | Storage, Fio | Network, Speedtest | Reference price, $ | Score | Effective score per $ |
1 | 1 | 25 | 1 | 5 | 11578 | 1674 | 47044 | 2,935 | 5,00 | 0,42 | 0,084 |
2 | 1 | 50 | 2 | 10 | 10440 | 1858 | 43000 | 2,385 | 6,25 | 0,36 | 0,057 |
4 | 2 | 80 | 4 | 20 | 22940 | 788 | 47133 | 1,457 | 6,56 | 0,39 | 0,059 |
8 | 4 | 160 | 5 | 40 | 54511 | 245 | 60922 | 2,371 | 7,31 | 0,81 | 0,111 |
Digital Ocean
RAM, GB | vCPU, Cores | Storage, GB | Network Out, Gb/s | Price, $ | RAM, Lmbench | CPU, PTS | Storage, Fio | Network, Speedtest | Reference price, $ | Score | Effective score per $ |
1 | 1 | 25 | 1 | 5 | 9326 | 1270 | 51489 | 0,158 | 5,00 | 0,19 | 0,039 |
2 | 1 | 50 | 1 | 10 | 9367 | 1178 | 49233 | 1,017 | 7,50 | 0,27 | 0,036 |
4 | 2 | 80 | 1 | 20 | 15829 | 872 | 50244 | 0,612 | 10,31 | 0,28 | 0,027 |
8 | 4 | 160 | 1 | 40 | 33002 | 294 | 84800 | 1,174 | 15,31 | 0,61 | 0,040 |
Yandex
RAM, GB | vCPU, Cores | Storage, GB | Network Out, Gb/s | Price, $ | RAM, Lmbench | CPU, PTS | Storage, Fio | Network, Speedtest | Reference price, $ | Score | Effective score per $ |
1 | 1 | 25 | 10 | 11,26 | 27965 | 573* | 467 | 1,435 | 8,73 | 0,36 | 0,041 |
2 | 1 | 50 | 10 | 15,52 | 26212 | 814* | 916 | 1,689 | 8,15 | 0,34 | 0,042 |
4 | 2 | 80 | 10 | 29,12 | 14863 | 796 | 1365 | 1,338 | 8,46 | 0,26 | 0,031 |
8 | 4 | 160 | 10 | 58,23 | 22134 | 425 | 2300 | 1,444 | 9,19 | 0,37 | 0,041 |
* - использовалось 2 ядра по 50%, т.к. тарифы только от 2 ядер
Selectel
RAM, GB | vCPU, Cores | Storage, GB | Network Out, Gb/s | Price, $ | RAM, Lmbench | CPU, PTS | Storage, Fio | Network, Speedtest | Reference price, $ | Score | Effective score per $ |
1 | 1 | 8 | 1 | 8,82 | 11307 | 1273 | 23578 | 0,714 | 13,51 | 0,20 | 0,015 |
2 | 1 | 50 | 1 | 18,96 | 13044 | 1242 | 18322 | 0,759 | 14,22 | 0,21 | 0,014 |
4 | 2 | 80 | 1 | 34,02 | 22845 | 647 | 18322 | 0,789 | 17,54 | 0,30 | 0,017 |
16 | 4 | 128 | 1 | 77,24 | 34973 | 315 | 18311 | 0,717 | 29,12 | 0,45 | 0,015 |
Leaseweb
RAM, GB | vCPU, Cores | Storage, GB | Network Out, Gb/s | Price, $ | RAM, Lmbench | CPU, PTS | Storage, Fio | Network, Speedtest | Reference price, $ | Score | Effective score per $ |
1 | 1 | 20 | 1 | 4,71 | 9021 | 1602 | 2661 | 1,128 | 5,00 | 0,18 | 0,036 |
2 | 1 | 40 | 1 | 9,43 | 12319 | 1186 | 2663 | 1,402 | 7,37 | 0,23 | 0,032 |
4 | 2 | 60 | 1 | 17,69 | 18996 | 779 | 2662 | 1,702 | 9,58 | 0,32 | 0,033 |
8 | 4 | 80 | 1 | 29,49 | 35426 | 317 | 2661 | 1,430 | 12,44 | 0,48 | 0,039 |
Firstvds
RAM, GB | vCPU, Cores | Storage, GB | Network Out, Gb/s | Price, $ | RAM, Lmbench | CPU, PTS | Storage, Fio | Network, Speedtest | Reference price, $ | Score | Effective score per $ |
1 | 1 | 20 | 0,1 | 2,46 | 10552 | 1168 | 6827 | 0,082 | 8,15 | 0,12 | 0,015 |
2 | 1 | 20 | 0,1 | 3,1 | 10695 | 1180 | 6827 | 0,082 | 9,88 | 0,12 | 0,012 |
4 | 2 | 40 | 0,1 | 6,22 | 16487 | 584 | 6827 | 0,076 | 17,69 | 0,20 | 0,011 |
8 | 6 | 120 | 0,1 | 16,09 | 26532 | 266 | 6827 | 0,077 | 42,24 | 0,37 | 0,009 |
Ruvds
RAM, GB | vCPU, Cores | Storage, GB | Network Out, Gb/s | Price, $ | RAM, Lmbench | CPU, PTS | Storage, Fio | Network, Speedtest | Reference price, $ | Score | Effective score per $ |
0,5 | 1 | 10 | 0,1 | 1,69 | 9137 | 2108 | 374 | 0,098 | 6,55 | 0,08 | 0,012 |
4 | 2 | 40 | 0,1 | 19,97 | 14722 | 884 | 295 | 0,066 | 56,79 | 0,14 | 0,003 |
8 | 2 | 80 | 0,1 | 37,9 | 18351 | 653 | 32355 | 0,065 | 103,63 | 0,24 | 0,002 |
16 | 4 | 160 | 0,1 | 75,79 | 31306 | 261 | 29971 | 0,070 | 198,36 | 0,44 | 0,002 |
Firstbyte
RAM, GB | vCPU, Cores | Storage, GB | Network Out, Gb/s | Price, $ | RAM, Lmbench | CPU, PTS | Storage, Fio | Network, Speedtest | Reference price, $ | Score | Effective score per $ |
1 | 1 | 20 | 0,2 | 1,95 | 8529 | 1946 | 27289 | 0,003 | 4,02 | 0,12 | 0,030 |
1 | 3 | 40 | 0,2 | 4,4 | 20671 | 727 | 25944 | 0,004 | 7,65 | 0,22 | 0,029 |
3 | 4 | 70 | 0,2 | 9,73 | 20760 | 563 | 29956 | 0,004 | 14,45 | 0,26 | 0,018 |
6 | 5 | 90 | 0,2 | 15,57 | 18609 | 699 | 21978 | 0,234 | 21,97 | 0,23 | 0,011 |
Beget
RAM, GB | vCPU, Cores | Storage, GB | Network Out, Gb/s | Price, $ | RAM, Lmbench | CPU, PTS | Storage, Fio | Network, Speedtest | Reference price, $ | Score | Effective score per $ |
1 | 1 | 15 | 0,1 | 4,29 | 13546 | 923 | 142544 | 0,011 | 14,66 | 0,38 | 0,026 |
2 | 2 | 30 | 0,1 | 8,57 | 20822 | 694 | 50778 | 0,717 | 25,35 | 0,33 | 0,013 |
4 | 4 | 60 | 0,1 | 17,92 | 35069 | 338 | 53378 | 1,239 | 48,91 | 0,54 | 0,011 |
8 | 4 | 120 | 0,1 | 32,34 | 34753 | 294 | 118389 | 0,823 | 85,57 | 0,65 | 0,008 |
Sweb
RAM, GB | vCPU, Cores | Storage, GB | Network Out, Gb/s | Price, $ | RAM, Lmbench | CPU, PTS | Storage, Fio | Network, Speedtest | Reference price, $ | Score | Effective score per $ |
1 | 2 | 10 | 1 | 4,53 | 19529 | 817 | 56022 | 0,109 | 5,66 | 0,27 | 0,048 |
2 | 2 | 20 | 1 | 8,43 | 18012 | 858 | 53100 | 0,108 | 6,85 | 0,26 | 0,037 |
4 | 4 | 40 | 1 | 15,57 | 22963 | 499 | 47885 | 0,109 | 8,27 | 0,32 | 0,039 |
8 | 8 | 80 | 1 | 28,56 | 23918 | 269 | 48053 | 0,109 | 11,16 | 0,43 | 0,039 |
REG.RU
RAM, GB | vCPU, Cores | Storage, GB | Network Out, Gb/s | Price, $ | RAM, Lmbench | CPU, PTS | Storage, Fio | Network, Speedtest | Reference price, $ | Score | Effective score per $ |
1 | 2 | 15 | 0,1 | 5,6 | 14158 | 759 | 6827 | 0,082 | 18,43 | 0,16 | 0,009 |
2 | 2 | 25 | 0,1 | 11,21 | 14245 | 769 | 6827 | 0,225 | 33,63 | 0,18 | 0,005 |
4 | 2 | 30 | 0,1 | 23,25 | 13494 | 738 | 6827 | 0,084 | 67,33 | 0,16 | 0,002 |
8 | 4 | 45 | 0,1 | 38,83 | 28797 | 368 | 6827 | 0,226 | 106,11 | 0,33 | 0,003 |
Skyhost
RAM, GB | vCPU, Cores | Storage, GB | Network Out, Gb/s | Price, $ | RAM, Lmbench | CPU, PTS | Storage, Fio | Network, Speedtest | Reference price, $ | Score | Effective score per $ |
1 | 1 | 20 | 0,03 | 1,94 | 2356 | 4795 | 1557 | 0,004 | 17,74 | 0,03 | 0,002 |
2 | 2 | 40 | 0,03 | 3,23 | 4014 | 1906 | 1546 | 0,004 | 28,23 | 0,05 | 0,002 |
4 | 4 | 60 | 0,03 | 5,83 | 5978 | 1172 | 1568 | 0,004 | 49,92 | 0,08 | 0,002 |
8 | 4 | 70 | 0,03 | 7,78 | 5975 | 1055 | 1569 | 0,004 | 66,26 | 0,09 | 0,001 |
Выводы
В итоге мы построили таблицу, где сравнили все результаты по выбранным провайдерам и привели их к читаемому виду:
RAM, GB
Linode | Sweb | ITSOFT | Yandex | DO | Leasweb | Firstbyte | Selectel | Beget | Firstvds | RuVDS | REG.RU | Skyhost | |
1 | 0,084 | 0,048 | 0,037 | 0,041 | 0,039 | 0,036 | 0,030 | 0,015 | 0,026 | 0,015 | 0,012 | 0,009 | 0,002 |
2 | 0,057 | 0,037 | 0,042 | 0,042 | 0,036 | 0,032 | 0,029 | 0,014 | 0,013 | 0,012 | 0,012 | 0,005 | 0,002 |
4 | 0,059 | 0,039 | 0,042 | 0,031 | 0,027 | 0,033 | 0,018 | 0,017 | 0,011 | 0,011 | 0,003 | 0,002 | 0,002 |
8 | 0,111 | 0,039 | 0,035 | 0,041 | 0,040 | 0,039 | 0,011 | 0,015 | 0,008 | 0,009 | 0,002 | 0,003 | 0,001 |
AVG, | 7,798 | 4,073 | 3,893 | 3,858 | 3,546 | 3,480 | 2,180 | 1,547 | 1,442 | 1,171 | 0,732 | 0,493 | 0,160 |
здесь:
RAM, GB – показатель памяти у тарифов провайдеров
AVG,102 – среднее значение четырех расчетных значений Effective score per $ выше в степени 102
Построим график эффективности по показателю AVG
Получилось три группы: одна из компаний ушла в отрыв, далее пелотон из пяти лидеров и следом догоняющие.
Второе важное замечание №2: Таблица да и вся методика построена из предположения, что каждый параметр имеет равный вес. В том случае, если Вы придаете большее значение, допустим производительности дисков, то картина распределения будет иной. Напомним, что наша задача – поделиться методикой оценки сервисов, поэтому окончательное решение и выводы Вы сделаете сами.
Вывод 1. Из результатов по дискам мы видим, что некоторые провайдеры ограничивают скорость. Скорее всего они это делают для снижения риска нагрузки на дисковую подсистему. Yandex, Ruvds (на начальных тарифах), Leaseweb, Firstvds, REG.RU, Skyhost.
Yandex | 467 | 916 | 1365 | 2300 |
Ruvds | 374 | 295 | 32355 | 29971 |
Leaseweb | 2661 | 2663 | 2662 | 2661 |
Firstvds | 6827 | 6827 | 6827 | 6827 |
REG.RU | 6827 | 6827 | 6827 | 6827 |
Skyhost | 1557 | 1546 | 1568 | 1569 |
Там где это различие менее заметное, могут использоваться просто разные конфигурации серверов.
Yandex
CPU, PTS | 573* | 814* | 796 | 425 |
RAM, Lmbench | 27965 | 26212 | 14863 | 22134 |
* - использовалось 2 ядра по 50%, т.к. тарифы только от 2 ядер
Ruvds
CPU, PTS | 2108 | 884 | 653 | 261 |
RAM, Lmbench | 9137 | 14722 | 18351 | 31306 |
Firstbyte
CPU, PTS | 1946 | 727 | 563 | 699 |
RAM, Lmbench | 8529 | 20671 | 20760 | 18609 |
DO
CPU, PTS | 1270 | 1178 | 872 | 294 |
RAM, Lmbench | 9326 | 9367 | 15829 | 33002 |
Показатели сети не всегда соответствуют или даже приближаются к заявленным значениям. Это говорит об ограничениях на интерфейсах серверов с VDS, или о проблемах в сети провайдера. Также выяснилось, что конкретно speedtest, установленный из репозиториев, может занижать результаты сети. Мы со своей стороны также поработали над этими значениями и теперь можем гарантированно выделить 1 Гбит/с на каждый VDS. Мы не стали менять данные в таблице, чтобы показатели оставались сравнимыми, но отдельно покажем тут что, если производить измерения через speedtest ookla с их сайта, то результат будем иным:
Инструкцию по установке установке можно найти по следующей ссылке
Linode
Заявлена | 1 | 2 | 4 | 5 |
Реальная | 2,935 | 2,385 | 1,457 | 2,371 |
DO
Заявлена | 1 | 1 | 1 | 1 |
Реальная | 0,158 | 1,017 | 0,612 | 1,174 |
Yandex
Заявлена | 10 | 10 | 10 | 10 |
Реальная | 1,435 | 1,689 | 1,338 | 1,444 |
Firstbyte
Заявлена | 0,2 | 0,2 | 0,2 | 0,2 |
Реальная | 0,003 | 0,004 | 0,004 | 0,234 |
Sweb
Заявлена | 1 | 1 | 1 | 1 |
Реальная | 0,109 | 0,108 | 0,109 | 0,109 |
Skyhost
Заявлена | 0,03 | 0,03 | 0,03 | 0,03 |
Реальная | 0,004 | 0,004 | 0,004 | 0,004 |
Возвращаясь к началу статьи, покажем ту самую вишенку на торте, на которую мы обращали ваше внимание – вопрос соотношения цены и качества разных конфигураций, можно сравнить результаты первого VDS с первого места и последнего VDS с последнего места, давайте посмотрим, как интересно это сравнение выглядит:
Linode
RAM, GB | vCPU, Cores | Storage, GB | Network Out, Gb/s | Price, $ | RAM, Lmbench | CPU, PTS | Storage, Fio | Network, Speedtest | Reference price, $ | Score | Effective score per $ |
1 | 1 | 25 | 1 | 5 | 11578 | 1674 | 47044 | 2,935 | 5,00 | 0,52 | 0,10 |
Skyhost
RAM, GB | vCPU, Cores | Storage, GB | Network Out, Gb/s | Price, $ | RAM, Lmbench | CPU, PTS | Storage, Fio | Network, Speedtest | Reference price, $ | Score | Effective score per $ |
8 | 4 | 70 | 0,03 | 7,78 | 5975 | 1055 | 1569 | 0,004 | 73,17 | 0,20 | 0,00 |
В данном случае мы можем увидеть как раз тот самый пример, когда производительность в Linode даже при таком раскладе, практически везде, существенно выше чем в Skyhost, а цена значительно ниже.
Возьмем еще одно сравнение:
Selectel
RAM, GB | vCPU, Cores | Storage, GB | Network Out, Gb/s | Price, $ | RAM, Lmbench | CPU, PTS | Storage, Fio | Network, Speedtest | Reference price, $ | Score | Effective score per $ |
1 | 1 | 8 | 1 | 8,82 | 11307 | 1273 | 23578 | 0,714 | 13,51 | 0,32 | 0,02 |
2 | 1 | 50 | 1 | 18,96 | 13044 | 1242 | 18322 | 0,759 | 18,96 | 0,43 | 0,02 |
Firstvds
RAM, GB | vCPU, Cores | Storage, GB | Network Out, Gb/s | Price, $ | RAM, Lmbench | CPU, PTS | Storage, Fio | Network, Speedtest | Reference price, $ | Score | Effective score per $ |
1 | 1 | 20 | 0,1 | 2,46 | 10552 | 1168 | 6827 | 0,082 | 8,15 | 0,24 | 0,03 |
2 | 1 | 20 | 0,1 | 3,1 | 10695 | 1180 | 6827 | 0,082 | 11,24 | 0,29 | 0,03 |
А это уже тот случай, когда мы видим более дорогого, но вместе с тем более качественного провайдера по показателям производительности.
Надеюсь что вы найдете в этих таблицах еще много интересного и сможете исследовать информацию самостоятельно при помощи данной методики.
Вывод 2. Из пункта 1 видно насколько важно проводить тестирование перед тем, как брать VDS в аренду. Возможно провайдеры переживают за безопасность. Можно предложить им сделать предварительную привязку ваших банковских карт и сбор паспортных данных. К сожалению, данная процедура доступна не у всех, или есть, но с определенными нюансами, давайте рассмотрим этот вопрос несколько подробнее:
Провайдеры, у кого есть тестовый период:
DO, Yandex, ITSOFT, Ruvds*
* – протестировать диски скорее всего не дадут (у нас было так)
Провайдеры, у которых есть возможность взять поминутную, почасовую или суточную тарификацию:
Linode, Selectel, Sweb**, Beget, REG.RU**
** – оплата за месяц, но можно отказаться через сутки/двое и вернуть средства
Провайдеры, у которых нет тестового периода, но можно менять тариф:
Firstbyte, Firstvds, Skyhost
Провайдеры, у которых тестового периода нет и тариф изменить не получится:
Leaseweb
Таким образом заключаем, что проведение тестов поможет вам исключить ошибки при выборе VDS.
Вывод 3. Наилучшие результаты бенчмарков достигнуты при соотношении x ядер vCPU к xGB RAM. Процессор успевает обрабатывать данные при таком объеме памяти более эффективно. Такая конфигурация не подойдет под все задачи и не выгодна провайдерам, так как не позволяет использовать весь потенциал ресурсов сервера, но обеспечивает лучшую производительность. Также видно, что большее количество ядер CPU не дает прироста при малом количестве памяти (обрабатывать нечего), однако такая конфигурация может использоваться для большого количества вычислений на лету (используется редко). Но большее количество памяти может быть использовано для последовательного доступа к большему количеству приложений.
Сравним указанную конфигурацию с парой других, чтобы наглядно показать это:
Linode
RAM, GB | vCPU, Cores | RAM, Lmbench | CPU, PTS |
1 | 1 | 11578 | 1674 |
2 | 1 | 10440 | 1858 |
Firstbyte* (очень противоречивые результаты)
RAM, GB | vCPU, Cores | RAM, Lmbench | CPU, PTS |
1 | 1 | 8529 | 1946 |
1 | 3 | 20671 | 727 |
3 | 4 | 20760 | 563 |
6 | 5 | 18609 | 699 |
* – вынес скорее как тему для дискуссий и размышлений, т.к. мы можем здесь видеть более производительные показатели памяти и процессора по сравнению с первой конфигурацией, это может говорить о слабой машине в первом случае и/или об оверселле, который заметен и далее (по крайней мере, тестируя этот момент на VDS со своего ноута с теми же конфигурациями, я не получил такие же результаты, приведу эти результаты ниже рядом).
RAM, GB | vCPU, Cores | RAM, Lmbench | CPU, PTS |
1 | 1 | 8091 | 1402 |
1 | 3 | 7855 | 714 |
Beget
RAM, GB | vCPU, Cores | RAM, Lmbench | CPU, PTS |
4 | 4 | 35069 | 338 |
8 | 4 | 34753 | 294 |
ITSOFT
RAM, GB | vCPU, Cores | RAM, Lmbench | CPU, PTS |
1 | 1 | 10124 | 2016 |
2 | 2 | 18133 | 997 |
4 | 4 | 25470 | 498 |
8 | 6 | 26348 | 358 |
REG.RU
RAM, GB | vCPU, Cores | RAM, Lmbench | CPU, PTS |
2 | 2 | 14245 | 769 |
4 | 2 | 13494 | 738 |
На основании этих данных мы решили изменить тарифную сетку, сделав ее более разнообразной и целесообразной для разных задач. Вы можете ознакомиться с ней здесь:
RAM, Gb | vCPU, core | SSD, Gb | Price, RUB | Price USD |
Универсальная линейка standard | ||||
0,5 | 1 | 10 | 240 | 3 |
1 | 1 | 25 | 510 | 7 |
2 | 1 | 25 | 600 | 8 |
4 | 2 | 50 | 1200 | 16 |
6 | 3 | 60 | 1575 | 21 |
8 | 4 | 80 | 2100 | 28 |
Линейка для последовательной работы с огромным количеством данных и приложений ram optimized | ||||
4 | 1 | 25 | 780 | 11 |
8 | 2 | 50 | 1560 | 21 |
12 | 3 | 60 | 2115 | 29 |
16 | 4 | 80 | 2820 | 38 |
Линейка для моментальных и эффективных вычислений cpu optimized | ||||
1 | 2 | 25 | 555 | 8 |
2 | 2 | 25 | 645 | 9 |
2 | 4 | 50 | 1110 | 15 |
4 | 4 | 50 | 1290 | 17 |
3 | 6 | 60 | 1440 | 19 |
6 | 6 | 60 | 1710 | 23 |
4 | 8 | 80 | 1920 | 26 |
8 | 8 | 80 | 2280 | 31 |
Линейка для малообъемных сервисов disk reduced | ||||
1 | 1 | 10 | 285 | 4 |
2 | 2 | 20 | 570 | 8 |
4 | 4 | 40 | 1140 | 15 |
Вывод 4. На основании полученных данных мы приняли меры по уменьшению стоимости некоторых тарифов, так что аналитическая работа была проведена не зря, ну а результаты исследований публикуем в открытом доступе. Пусть эти данные, а самое главное методология оценки провайдеров послужит хорошим людям.
Резюме
Приняв решение хранить данные не в ведре не в собственной стойке, а в ЦОДе стороннего провайдера, потратьте время не только на обзвон возможных вариантов, но и на небольшое тестирование. Это окупится. Цены на услуги у большинства дата-центров весьма условны (так, к сожалению, принято на рынке). Покупая виртуальную машину, используйте подход, схожий с покупкой обычной машины. Приходя в автосалон вы же не говорите, что вам нужен кузов, четыре колеса и мотор, ну и чтобы скорость была за двести. Без анализа ситуации в автосалоне на сайте хостера вам выдадут типовой вариант:
вот вам процессор с одним ядром (один двигатель под капотом – какой двигатель, кто производитель?)
вот вам оперативная память 1 Гб (один литр рабочего объема двигателя – а сколько с этого литра можно снять лошадей?),
вот вам место под хранение 25 Гб (объем багажника – это на крыше или в салоне?)
вот максимальная скорость канала 1 Гбит/с (это скорость автомобиля под уклон и на пустой дороге?)
А вот и цена. Что Вам еще нужно?
Нет, так дело не пойдет. Вы же берете в аренду сервер не на неделю, скорее всего вы берете виртуальную машину на долгий срок для хранения и обработки критичных для вашего бизнеса данных. Поэтому потратьте время, протестируйте поставщиков, проведите замеры и выберите лучшего. Заодно и определитесь с конфигурацией. Методика дата-центра ITSOFT – вам в помощь.
Мы давно на рынке, поэтому не боимся поделиться “конфиденциальной” информацией. И да, статья не преследует чисто продажные или рекламные цели. Мы никого не агитируем, как указано выше, мы провели исследование, сделали для себя полезные выводы и делимся ими с заинтересованными людьми.
показы