Все статьи
Железо

NVMe, SATA SSD и HDD на VPS: в чём разница и что важно

Коротко

NVMe - это SSD, подключённый по шине PCIe с протоколом NVMe: он не упирается в потолок SATA III около 600 МБ/с и обрабатывает до 65 535 очередей команд вместо одной у SATA. Для VPS с базами данных, сайтами и сборками главное преимущество NVMe - больше IOPS и ниже задержка на мелких случайных операциях, а не линейная скорость.

Главное
  • NVMe-накопитель подключается по шине PCIe и при четырёх линиях упирается в теоретические ~8 ГБ/с на PCIe 4.0 и ~16 ГБ/с на PCIe 5.0, а SATA SSD ограничен интерфейсом SATA III 6 Гбит/с - около 600 МБ/с.
  • Протокол AHCI, через который работают SATA-диски, даёт одну очередь на 32 команды, а спецификация NVMe - до 65 535 очередей по 65 536 команд, поэтому NVMe лучше переносит параллельные запросы.
  • Для баз данных, сайтов и сборок важнее IOPS и задержка на случайных операциях блоками 4 КБ, чем линейная скорость: здесь NVMe опережает SATA SSD, а HDD отстаёт на порядки.
  • Тип диска VPS по имени устройства не узнать - внутри виртуальной машины диск виден как vda или sda; надёжнее замерить случайное чтение утилитой fio.
  • Все тарифы Tihost работают на NVMe: диск от 40 до 450 ГБ, цена от $4.00 в месяц.

Чем NVMe отличается от SATA SSD и HDD?

NVMe и SATA SSD - оба твердотельные накопители на флеш-памяти, разница в том, как они подключены к процессору. SATA SSD работает через тот же интерфейс SATA и протокол AHCI, что и жёсткие диски (HDD), и наследует их ограничения. NVMe (NVM Express) - протокол, созданный специально для флеш-памяти: накопитель подключается напрямую к шине PCIe. HDD - механический диск с вращающимися пластинами и головкой, которой нужно физически переместиться к данным.

Интерфейс: PCIe против SATA

SATA III передаёт до 6 Гбит/с, а после служебного кодирования остаётся около 600 МБ/с - это потолок любого SATA SSD, каким бы быстрым ни был сам флеш. NVMe-накопитель обычно занимает четыре линии PCIe, и потолок задаёт поколение шины: около 4 ГБ/с у PCIe 3.0, около 8 ГБ/с у PCIe 4.0 и около 16 ГБ/с у PCIe 5.0. Это теоретическая пропускная способность канала, реальные накопители до неё не дотягивают, но разница с SATA всё равно кратная.

Очереди команд: AHCI и NVMe

AHCI проектировался для жёстких дисков, у которых одна головка и обрабатывать много запросов параллельно нет смысла: одна очередь глубиной 32 команды. Спецификация NVMe допускает до 65 535 очередей ввода-вывода по 65 536 команд в каждой, и каждое ядро процессора может работать со своей очередью без блокировок. На сервере, где одновременно пишут база данных, веб-сервер и логи, это и даёт NVMe преимущество под параллельной нагрузкой.

Почему для сервера важнее IOPS и задержка, чем МБ/с?

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

  • Базы данных (PostgreSQL, MySQL) читают страницы индексов и таблиц блоками по несколько килобайт и ждут fsync при каждой фиксации транзакции - задержка диска прямо добавляется ко времени запроса.
  • Сборки и пакетные менеджеры (npm install, компиляция, docker build) создают и читают десятки тысяч мелких файлов.
  • Сайты и CMS под нагрузкой одновременно читают файлы, пишут сессии, кэш и логи - это параллельные мелкие операции.
  • Бэкапы, раздача больших файлов, видео - редкий случай, где важна именно последовательная скорость в МБ/с.

Сравнение NVMe, SATA SSD и HDD

HDDSATA SSDNVMe SSD
НосительВращающиеся пластиныФлеш-памятьФлеш-память
ПодключениеSATA (или SAS)SATA III, 6 Гбит/сPCIe, обычно 4 линии
ПротоколAHCI (для SATA)AHCINVMe
Очереди команд1 × 32 (SATA)1 × 32До 65 535 × 65 536
Потолок интерфейсаМеханика диска, а не интерфейсОколо 600 МБ/с~4 / ~8 / ~16 ГБ/с на PCIe 3.0 / 4.0 / 5.0
Случайные операции 4 КБ, IOPSСотниДесятки тысячСотни тысяч и больше
Задержка доступаМиллисекундыПорядка сотни микросекундДесятки микросекунд
Где уместен на сервереАрхивы и холодные данныеСайты и сервисы без тяжёлой записиБазы данных, сборки, нагруженные сайты
Типичные порядки величин для отдельных накопителей, а не замеры конкретного сервера. В VPS диск виртуальный и делится с соседями, поэтому реальные цифры меряйте fio.

Термины

NVMe (NVM Express)
Протокол обмена с накопителями на флеш-памяти через шину PCIe: много параллельных очередей команд и минимальные накладные расходы.
AHCI
Протокол контроллера SATA, созданный для жёстких дисков: одна очередь глубиной 32 команды.
IOPS
Операций ввода-вывода в секунду: сколько отдельных запросов на чтение или запись выдерживает диск. Обычно меряют на блоках 4 КБ.
Задержка (latency)
Время от отправки запроса к диску до ответа. У HDD измеряется миллисекундами, у SSD - микросекундами.
Глубина очереди (queue depth)
Сколько запросов к диску отправлено и ещё не выполнено. Чем больше параллельных запросов держит диск, тем выше его IOPS под нагрузкой.

Как узнать, какой диск у вашего VPS?

Внутри виртуальной машины видно виртуальное устройство, а не физический накопитель: диск называется vda или sda, а флаг ROTA в lsblk (1 - вращающийся диск, 0 - нет) зависит от того, как его описал гипервизор, и может показывать 1 даже на NVMe. Надёжнее замерить поведение диска: задержку на одиночных запросах и IOPS под очередью.

bash
lsblk -d -o name,rota,size
sudo apt install -y fio
cd ~
# задержка: случайное чтение 4 КБ по одному запросу
fio --name=lat --filename=fio-test --size=1G --direct=1 --ioengine=libaio --rw=randread --bs=4k --iodepth=1 --runtime=30 --time_based
# IOPS: то же, но с очередью из 64 запросов
fio --name=iops --filename=fio-test --size=1G --direct=1 --ioengine=libaio --rw=randread --bs=4k --iodepth=64 --runtime=30 --time_based
rm fio-test

В выводе fio смотрите на IOPS= и среднюю задержку clat: сотни IOPS и миллисекунды задержки - это HDD, десятки и сотни тысяч IOPS при задержке в десятки-сотни микросекунд - SSD. Учтите, что провайдер может ограничивать IOPS на виртуальный диск. Полный набор тестов процессора, диска и сети - в статье «Как проверить производительность VPS».

PCIe 4.0 и PCIe 5.0 на платформах Tihost

Поколение PCIe задаёт платформа: процессор AMD Ryzen 9 5950X (Германия, Финляндия) поддерживает PCIe 4.0, Ryzen 9 9950X (Польша) - PCIe 5.0. Это возможности процессоров, а не характеристики конкретных дисков; подробнее о различиях - в сравнении Ryzen 9 5950X и 9950X.

AMD Ryzen 9 5950XAMD Ryzen 9 9950X
АрхитектураZen 3Zen 5
Ядра / потоки16 / 3216 / 32
Базовая частота3,4 ГГц4,3 ГГц
Частота в бусте4,9 ГГц5,7 ГГц
Кэш L364 МБ64 МБ
TDP105 Вт170 Вт
Техпроцесс7 nm4 nm
ПамятьDDR4DDR5
PCIePCIe 4.0PCIe 5.0
Выпуск2020-112024-08
Где стоитГермания, ФинляндияПольша

NVMe во всех тарифах Tihost

Во всех конфигурациях Tihost диск - NVMe, объём от 40 до 450 ГБ в зависимости от тарифа; HDD и SATA SSD в тарифах нет. Сервер разворачивается примерно за 2 минуты после оплаты, внутри - KVM с полным root-доступом, так что диск можно сразу проверить fio. Что ещё входит в каждый сервер - в обзоре возможностей VPS Tihost.

ЛинейкаКонфигурацияГерманияФинляндияПольша
Starter1 vCPU·2 GB RAM·40 GB NVMe$4.00$4.00$5.00
Starter2 vCPU·4 GB RAM·80 GB NVMe$7.70$7.70$9.60
Starter4 vCPU·4 GB RAM·140 GB NVMe$12.30$12.30$15.40
Advanced4 vCPU·8 GB RAM·180 GB NVMe$15.40$15.40$19.30
Advanced6 vCPU·12 GB RAM·240 GB NVMe$24.00$24.00$30.00
Advanced8 vCPU·12 GB RAM·260 GB NVMe$28.00$28.00$35.00
Power8 vCPU·16 GB RAM·300 GB NVMe$32.00$32.00$40.00
Power12 vCPU·24 GB RAM·350 GB NVMe$49.00$49.00$61.00
Power16 vCPU·32 GB RAM·450 GB NVMe--$77.50
Цена за 30 дней, USD. Прочерк - конфигурация в локации не продаётся.
Запустите сервер за 2 минуты

AMD Ryzen 9, NVMe и защита от DDoS в Германии, Финляндии и Польше. Оплата криптовалютой или картой.

Заказать сервер

Частые вопросы

Что быстрее для сервера: NVMe или SATA SSD?

NVMe: он подключён по шине PCIe без потолка SATA III около 600 МБ/с, держит до 65 535 очередей команд вместо одной и даёт меньшую задержку. Особенно разница видна на базах данных и других мелких случайных операциях.

NVMe - это тоже SSD?

Да. NVMe SSD и SATA SSD - оба твердотельные накопители на флеш-памяти; NVMe означает протокол и подключение через PCIe вместо SATA. Когда говорят «NVMe или SSD», обычно сравнивают NVMe SSD с SATA SSD.

Насколько NVMe быстрее SATA SSD?

По линейной скорости потолок SATA SSD - около 600 МБ/с, а NVMe на PCIe 4.0 и 5.0 - гигабайты в секунду. На случайных операциях 4 КБ NVMe выдаёт больше IOPS при меньшей задержке; в VPS итог зависит ещё и от лимитов провайдера.

Нужен ли NVMe для VPS?

Для баз данных, интернет-магазинов, CMS и сборок проектов - да: их скорость упирается в IOPS и задержку диска. Для VPN, прокси или простого бота диск почти не важен, но NVMe и там ускоряет установку пакетов и обновления.

Как узнать, на каком диске работает мой VPS?

Имя устройства (vda, sda) и флаг ROTA в lsblk в виртуальной машине мало что говорят. Замерьте случайное чтение утилитой fio блоками 4 КБ: у NVMe будут десятки-сотни тысяч IOPS и задержка в микросекундах, у HDD - сотни IOPS и миллисекунды.

Какие диски в VPS Tihost?

Во всех тарифах Tihost - NVMe, объём от 40 до 450 ГБ в зависимости от конфигурации, цена от $4.00 в месяц. HDD и SATA SSD в тарифах нет.