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

Для одного небольшого проекта нам понадобился быстрый 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 оперативной памяти было в два раза больше, чем у конкурентов.

Комментарии (6)


  1. mxr
    29.04.2024 09:46

    del


  1. Miheev2
    29.04.2024 09:46
    +3

    Пользуюсь хостером [данные удалены] и проблем не знаю.


  1. utya
    29.04.2024 09:46
    +1

    Это первоапрельский прикол?


  1. Maxim_Q
    29.04.2024 09:46

    Для себя мы выбрали Хостера 1

    Потом выяснится что скорость не так важна как uptime. Вы за неделю тестирования проверяли хоть как-то канал взязи? например элементарно можно было пинговать google и потом через неделю посмотерть сколько пакетов потерялось.


  1. Mici555555
    29.04.2024 09:46

    А как оплачивать, у меня мир?


  1. noker81
    29.04.2024 09:46

    Что я узнал из этой статьи? Ничего.