Как выбрать быстрый виртуальный сервер

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

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

Для одного небольшого проекта нам понадобился быстрый VPS со следующими требованиями:

  • процессор с частотой от 4GHz (1 ядро) и быстрые NVMe диски;

  • размещение в регионе с хорошими каналами и связностью, лучше всего Нидерланды или Германия;

  • хостинг-компания много лет на рынке, с высокой оценкой при большом количестве отзывов.

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

Вот наши кандидаты:

Кандидат

Конфигурация VPS

Заявленная
частота CPU

≈ Цена в мес.
(при оплате за год)

Хостер 1

1 core/1Gb RAM, 25Gb NVMe

до 5.7 GHz

$4.50

Хостер 2

1 core/2Gb RAM, 30Gb NVMe

до 5.2 GHz

$7.00

Хостер 3

1 core/1Gb RAM, 30Gb NVMe

до 4 GHz

$7.50

Тестирование VPS

Замеры показателей работы CPU и диска мы выполняли с помощью скрипта nench.sh и делали это ежечасно в течение недели. Для этого на каждом сервере было создано cron-задание:

0 * * * * (wget -qO- wget.racing/nench.sh | bash) 2>&1 | tee -a report.log

В результате на каждом сервере мы получили полумегабайтный report.log с результатами тестов. Из этого лога мы решили взять наиболее универсальные показатели общей оценки скорости работы:

  • для CPU – время расчёта 500 Мб хешей SHA256, измеряется в секундах и чем меньше время, тем лучше;

  • для диска – IOPS, т.е. количество операций ввода-вывода в секунду. Здесь наоборот – лучше больше.

Чтобы извлечь эти данные из файла report.log и представить их в формате CSV, был написан bash скрипт:

parse.sh
#!/bin/bash

apt install bc -y

echo "Date and Time;CPU;IOPS" > report.csv

while IFS= read -r line; do

  if [[ "$previous" == " nench.sh "* ]]; then
    datetime=$(echo "$line" | sed -rn 's/.*timestamp:\s+(.*)\sUTC.*/\1/p')
  fi
  
  if [[ "$previous" == "CPU: SHA256-hashing 500 MB"* ]]; then
    cpu=$(echo "$line" | sed -rn 's/\s+(.*) seconds.*/\1/p')
  fi
  
  if [[ "$previous" == "ioping: sequential read speed"* ]]; then
    iops=$(echo "$line" | sed -rn 's/\s+generated.*, ([0-9]+) iops, .*/\1/p')
    if [ -z "$iops" ]; then
      kiloiops=$(echo "$line" | sed -rn 's/\s+generated.*, ([0-9.]+) k iops, .*/\1/p')
      iops="$(echo "$kiloiops*1000" | bc | sed '/\./ s/\.\{0,1\}0\{1,\}$//')"
    fi
  fi

  if [ -n "${datetime}" ] && [ -n "${cpu}" ] && [ -n "${iops}" ]; then
     echo "$datetime;$cpu;$iops" >> report.csv
     unset datetime cpu iops
  fi
  
  previous="$line"

done < report.log

Визуализировав полученные значения, мы увидели следующее:

В тестах процессора лидирует Хостер 1, по диску же явный лидер - это Хостер 2. Также по графикам IOPS видно, что Хостер 1 и Хостер 3 очевидно ограничивают использование диска, т.к. для NVMe столь невысокие IOPS не характерны.

Итог

Лидерами нашего теста оказались: Хостер 1 по скорости CPU, и Хостер 2 по скорости диска.

Для себя мы выбрали Хостера 1, поскольку критерий скорости диска для нас вторичен, а цена на VPS у него существенно ниже. Справедливости ради стоит сказать, что ценовое предложение Хостера 2 также было весьма интересно, т.к. на его одноядерном VPS оперативной памяти было в два раза больше, чем у конкурентов.

Источник: https://habr.com/ru/articles/811267/


Интересные статьи

Интересные статьи

Minecraft открывает большие возможностями для творчества. Вы можете реализовать креативные идеи, играть вместе с друзьями и создавать сообщество единомышленников. А будучи администратором сервера ...
Инструкция для получения доступа к устройству в целях получения и хранения данных с него удобным образом. Зачем? Чтобы в перспективе настроить свой Умный Дом без ограничений приложений, которые предос...
Выбор любого сервиса, в том числе и для проведения вебинаров, очень индивидуален. Всё зависит от задач. Например, если вы собираетесь проводить большие конференции на 3000 человек, для вас важна будет...
Всем привет! Перед Новым годом мы выпустили большой апдейт нашего продукта — CrowdSec v.1.0.X, в котором содержатся значительные изменения по сравнению с предыдущей верси...
Каждому специалисту по обработке и анализу данных, прежде чем запускать на своем наборе данных сложные алгоритмы машинного обучения, нужно исследовать и проанализировать ...