- Скорость одного ядра VPS показывает
sysbench cpu --threads=1 run, суммарную мощность всех vCPU - тот же тест с--threads=$(nproc); главная цифра - events per second. - Скорость диска VPS проверяют утилитой
fioна тестовом файле: случайные чтение и запись блоками 4 КБ дают IOPS и задержку, последовательное чтение блоками 1 МБ - пропускную способность в МБ/с. - Пропускную способность сети между серверами честнее всего мерить
iperf3между двумя своими машинами: публичные speedtest зависят от загрузки чужого сервера и маршрута до него. - Steal time (
stвtopиvmstat) - доля времени, когда виртуальный процессор ждал, пока гипервизор обслужит других; стабильно высокий steal под нагрузкой - признак перегруженного узла. - Результаты бенчмарка VPS сравнимы только при одинаковых командах и версиях программ: прогоняйте тесты несколько раз и в разное время суток.
Шаг 1. Узнайте, что внутри сервера
Прежде чем мерить, проверьте, что вы получили то, за что платите: модель процессора и число vCPU, объём памяти и диска. Пять стандартных команд есть в любом Linux:
lscpu
nproc
free -h
lsblk
df -hlscpu- модель процессора (Model name), число процессоров (CPU(s)), флаги инструкций вродеavx2иavx512f, тип виртуализации (Hypervisor vendor).nproc- сколько процессоров доступно системе; на VPS это число vCPU в тарифе.free -h- память:total- весь объём,available- сколько ещё могут занять программы.lsblkиdf -h- диски, разделы и свободное место. Внутри виртуальной машины диск обычно называетсяvdaилиsda, даже если физически это NVMe.
Шаг 2. Процессор: sysbench в один и во все потоки
sysbench cpu считает простые числа и показывает, сколько таких заданий процессор выполняет в секунду - строка events per second. Запустите тест дважды: в один поток, чтобы увидеть скорость одного ядра, и во все потоки, чтобы увидеть мощность всех vCPU.
sudo apt update
sudo apt install -y sysbench
# один поток: скорость одного ядра
sysbench cpu --threads=1 --time=10 run
# все потоки: суммарная мощность всех vCPU
sysbench cpu --threads=$(nproc) --time=10 runОднопоточный результат важнее для сайтов, ботов, игровых серверов и баз данных: один запрос выполняется на одном ядре. Многопоточный результат должен расти примерно пропорционально числу vCPU; если на 4 vCPU он почти не больше однопоточного, проверьте steal time (шаг 5) - скорее всего, узел перегружен. Почему частота на ядро так важна, разобрано в сравнении AMD Ryzen 9 5950X и 9950X.
Шаг 3. Диск: fio
fio - стандартная утилита для тестов дисков. Три замера ниже создают файл fio-test размером 1 ГБ в домашнем каталоге и 30 секунд читают и пишут его. Флаг --direct=1 отключает кэш операционной системы, чтобы мерился диск, а не память; --bs - размер блока, --iodepth - сколько запросов держится в очереди одновременно.
sudo apt install -y fio
cd ~
# случайное чтение блоками 4 КБ
fio --name=randread --filename=fio-test --size=1G --direct=1 --ioengine=libaio --rw=randread --bs=4k --iodepth=64 --runtime=30 --time_based --group_reporting
# случайная запись блоками 4 КБ
fio --name=randwrite --filename=fio-test --size=1G --direct=1 --ioengine=libaio --rw=randwrite --bs=4k --iodepth=64 --runtime=30 --time_based --group_reporting
# последовательное чтение блоками 1 МБ
fio --name=seqread --filename=fio-test --size=1G --direct=1 --ioengine=libaio --rw=read --bs=1M --iodepth=16 --runtime=30 --time_based --group_reporting
# удалите тестовый файл
rm fio-testВ выводе смотрите на IOPS= (операций в секунду), BW= (пропускная способность) и задержку clat - её перцентили показывают, сколько ждали самые медленные запросы. Для баз данных и сборки проектов важнее IOPS и задержка на 4 КБ, для бэкапов и раздачи файлов - последовательная скорость. Чем NVMe отличается от SATA SSD по этим цифрам - в статье NVMe, SATA SSD и HDD.
Шаг 4. Сеть: iperf3 между своими серверами
iperf3 измеряет пропускную способность канала между двумя машинами, которые вы контролируете. Один сервер принимает (-s), второй передаёт (-c); флаг -R меняет направление. Если установщик спросит, запускать ли iperf3 демоном, ответьте «No».
sudo apt install -y iperf3
# на сервере A: временно пустить сервер B на порт 5201 и запустить приём
sudo ufw allow from IP_СЕРВЕРА_B to any port 5201 proto tcp
iperf3 -s
# на сервере B: отдача в сторону A и приём от A (-R)
iperf3 -c IP_СЕРВЕРА_A -t 30
iperf3 -c IP_СЕРВЕРА_A -t 30 -RПосле теста остановите iperf3 -s (Ctrl+C) и удалите правило: sudo ufw status numbered, затем sudo ufw delete <номер>. Публичные speedtest-сервисы и утилита speedtest-cli из репозитория удобны, но осторожно с выводами: результат зависит от выбранного тестового сервера, его загрузки и маршрута до него, а не только от вашего VPS.
Шаг 5. Steal time: не перегружен ли узел
Steal time - доля времени, когда виртуальный процессор готов работать, но гипервизор отдаёт физическое ядро другим машинам. Его показывает колонка st в vmstat и значение st в строке %Cpu(s) команды top:
# пять замеров с интервалом в секунду, колонка st
vmstat 1 5
# в top: строка %Cpu(s), значение st
topОколо нуля - норма. Если st стабильно держится на заметном уровне, особенно под вашей нагрузкой во время sysbench, ваш VPS делит ядра с перегруженными соседями: тесты будут плавать, а программы - тормозить без видимой причины. Это повод показать вывод vmstat поддержке провайдера.
Комплексный тест: скрипт YABS
YABS (Yet Another Bench Script) - популярный скрипт, который за один запуск собирает сведения о системе и прогоняет тесты диска (fio), сети (iperf3 до публичных серверов) и процессора (Geekbench). Обычно его запускают одной строкой curl -sL yabs.sh | bash, но надёжнее сначала скачать и прочитать:
curl -sL yabs.sh -o yabs.sh
less yabs.sh
bash yabs.shКак читать результаты тестов VPS
| Что мерить | Команда | Главная цифра | Что она значит |
|---|---|---|---|
| Одно ядро | sysbench cpu --threads=1 | events per second | Скорость отдельного запроса, тика, однопоточной задачи |
| Все ядра | sysbench cpu --threads=$(nproc) | events per second | Сколько параллельной работы выдержит сервер |
| Случайный доступ к диску | fio --rw=randread/randwrite --bs=4k | IOPS, clat | Скорость баз данных, сборок, мелких файлов |
| Последовательный доступ | fio --rw=read --bs=1M | BW, МБ/с | Копирование, бэкапы, раздача больших файлов |
| Сеть | iperf3 -c | Bitrate, Мбит/с | Пропускная способность между двумя серверами |
| Соседи по узлу | vmstat 1 5 | st, % | Сколько процессорного времени забирают другие машины |
Как проверить VPS Tihost
Сервер Tihost разворачивается примерно за 2 минуты после оплаты, так что все замеры можно сделать в первый час. Внутри KVM с полным root-доступом: lscpu покажет AMD Ryzen 9 5950X или 9950X в зависимости от локации, lsblk - NVMe-диск, подключённый как виртуальное устройство. Сколько памяти и vCPU нужно под задачу, подскажет статья «Сколько памяти нужно VPS».
AMD Ryzen 9, NVMe и защита от DDoS в Германии, Финляндии и Польше. Оплата криптовалютой или картой.
Частые вопросы
Как проверить скорость диска на VPS?
Установите fio и запустите тест на файле, а не на устройстве: fio --name=randread --filename=fio-test --size=1G --direct=1 --ioengine=libaio --rw=randread --bs=4k --iodepth=64 --runtime=30 --time_based. Смотрите на IOPS, задержку clat и пропускную способность BW.
Что такое steal time на VPS?
Steal time - доля времени, когда виртуальный процессор ждал, пока гипервизор обслужит другие машины на том же узле. Он виден в колонке st команд vmstat и top; стабильно высокий steal говорит о перегруженном узле.
Безопасно ли запускать YABS через curl yabs.sh | bash?
Это запуск чужого кода с вашими правами, поэтому надёжнее скачать скрипт командой curl -sL yabs.sh -o yabs.sh, прочитать и только потом запустить. YABS скачивает сторонние программы и отправляет результаты Geekbench на публичный сайт.
Почему sysbench даёт разные результаты на разных серверах?
Результат sysbench зависит от модели и частоты процессора, загрузки соседей по узлу и версии самого sysbench. Сравнивайте серверы одной версией программы и одними флагами, повторяя тест несколько раз.
Как проверить скорость сети на VPS?
Точнее всего - утилитой iperf3 между двумя своими серверами: iperf3 -s на одном и iperf3 -c IP -t 30 на другом. Публичные speedtest зависят от выбранного тестового сервера и маршрута до него.
Как узнать, NVMe ли диск у VPS?
Внутри виртуальной машины диск обычно виден как vda или sda, поэтому название не поможет. Надёжнее замерить случайное чтение блоками 4 КБ через fio: у NVMe IOPS заметно выше, а задержка ниже, чем у SATA SSD и HDD.