NVMe VPS — это виртуальный сервер, у которого дисковая подсистема построена на накопителях, подключённых напрямую к шине PCIe, а не через устаревший интерфейс SATA. Разница не маркетинговая: на последовательных операциях NVMe обгоняет SATA SSD в 5–7 раз, а на случайном чтении мелкими блоками — именно так работают базы данных и CMS — отрыв бывает ещё больше. В этой статье разберём, чем протокол NVMe отличается от AHCI, откуда берётся скорость, где она видна на практике и как за пять минут проверить диск на своём VPS командами fio и dd.
Что такое NVMe и чем протокол отличается от AHCI
NVMe (Non-Volatile Memory Express) — протокол обмена данными, спроектированный специально под флеш-память. Обычный SATA SSD, каким бы быстрым ни был сам чип памяти, общается с системой через протокол AHCI, который разрабатывался в середине 2000-х для механических жёстких дисков. Тогда головка физически ездила по пластине, и глубокий параллелизм не имел смысла.
Отсюда три фундаментальных ограничения SATA SSD:
- Потолок интерфейса. SATA III даёт 6 Гбит/с — на практике это 550–600 МБ/с. Больше из этого разъёма не выжать, какой бы быстрый накопитель в него ни вставили.
- Одна очередь команд. AHCI поддерживает одну очередь глубиной 32 команды. NVMe — до 65 535 очередей по 65 536 команд в каждой (те самые «~64K»). Каждое ядро процессора может работать со своей очередью, не мешая остальным.
- Лишние прослойки. Команда в AHCI проходит через SATA-контроллер и несколько уровней абстракции. NVMe общается с накопителем напрямую по PCIe, поэтому задержка одной операции — десятки микросекунд против ~0,1–0,2 мс у SATA SSD.
Для домашнего ноутбука разница между одной очередью и 64 тысячами почти незаметна. Для сервера, где параллельно к диску обращаются Nginx, PHP-FPM, MySQL и фоновые задачи, — принципиальна: запросы разных процессов не выстраиваются в один узкий коридор.
PCIe-линии: откуда берётся пропускная способность
NVMe-накопитель подключается через линии PCIe — те же, что использует видеокарта. Типичный серверный NVMe занимает четыре линии (x4):
- PCIe 3.0 x4 — около 3,9 ГБ/с теоретического потолка, реальные диски читают до ~3 500 МБ/с;
- PCIe 4.0 x4 — вдвое больше, топовые накопители выдают до ~7 000 МБ/с.
Сравните с 550–600 МБ/с у SATA — вот и «в 5–7 раз быстрее» ещё до разговора о случайном доступе. Важная оговорка: это скорость физического диска на узле. На VPS вы делите её с соседями по серверу, но и ваша доля от NVMe в разы больше, чем доля от SATA SSD.
SSD или NVMe: сравнение в цифрах
Ниже — типичные порядки величин для одиночных накопителей, без RAID и кеширования:
| Параметр | HDD (SATA) | SATA SSD | NVMe SSD |
|---|---|---|---|
| Интерфейс и протокол | SATA III, AHCI | SATA III, AHCI | PCIe 3.0/4.0 x4, NVMe |
| Последовательное чтение | 100–200 МБ/с | 450–550 МБ/с | 3 000–7 000 МБ/с |
| Случайное чтение 4K | ~100–200 IOPS | десятки тысяч IOPS | сотни тысяч IOPS |
| Задержка операции | 5–10 мс | ~0,1–0,2 мс | десятки микросекунд |
| Очереди команд | 1 × 32 | 1 × 32 | до 65 535 × 65 536 |
Ключевая строка — не последовательное чтение, а случайные операции блоками 4 КБ (random 4K). Большие файлы сервер читает подряд редко; базы данных, файлы сессий, кеш и логи — это тысячи мелких обращений в разные места диска одновременно.
Где разница видна на практике
Базы данных. MySQL или PostgreSQL при каждом запросе, не попавшем в буферный пул, идут на диск за страницами индексов и данных — это как раз случайное чтение 4K. На SATA SSD сложный запрос с десятком таких промахов занимает миллисекунды, на NVMe — сотни микросекунд. При сотнях запросов в секунду это разница между «летает» и «упёрлось в диск».
TTFB и скорость сайта. Некешированная страница WordPress — это 20–50 SQL-запросов плюс чтение десятков PHP-файлов. Быстрый диск снижает время до первого байта (TTFB), которое влияет и на поведенческие факторы, и на позиции в поиске. Остальные способы разгона разобрали в статье как ускорить WordPress.
Типовые серверные сценарии, где NVMe экономит время:
- установка пакетов и обновления системы — apt распаковывает тысячи мелких файлов;
- сборка Docker-образов и деплой приложений;
- снятие и восстановление дампов базы, ротация и анализ логов;
- бэкапы: скопировать 50–100 ГБ с NVMe можно в разы быстрее, а значит короче окно нагрузки;
- очереди задач и брокеры сообщений с записью на диск.
Общее правило: чем больше в нагрузке мелких случайных операций, тем сильнее выигрыш. Поэтому «в 5–7 раз» на линейном чтении на практике превращается в кратный прирост отзывчивости всего сервера.
Как проверить диск на VPS: fio и dd
Внутри виртуальной машины диск обычно виден как /dev/vda (virtio), а не /dev/nvme0n1, поэтому по имени устройства тип накопителя не определить. Надёжный способ один — измерить. На Ubuntu 24.04 установите fio:
sudo apt update && sudo apt install -y fio
Случайное чтение 4K — главный тест для серверной нагрузки:
fio --name=randread --filename=test.fio --size=1G --rw=randread --bs=4k \
--ioengine=libaio --direct=1 --iodepth=32 --numjobs=4 \
--runtime=60 --time_based --group_reporting
Смешанная нагрузка 70 % чтения / 30 % записи — ближе к реальной работе базы данных:
fio --name=mixed --filename=test.fio --size=1G --rw=randrw --rwmixread=70 --bs=4k \
--ioengine=libaio --direct=1 --iodepth=32 --numjobs=4 \
--runtime=60 --time_based --group_reporting
Линейную скорость грубо оценит dd (флаг oflag=direct обходит кеш ОС, иначе намерите скорость оперативной памяти):
dd if=/dev/zero of=test.dd bs=1M count=1024 oflag=direct status=progress
После тестов удалите временные файлы: rm test.fio test.dd.
Ориентиры для чтения результатов: единицы тысяч IOPS на random 4K — это либо SATA SSD, либо жёсткий лимит, либо перегруженный узел. Десятки тысяч IOPS и выше на VPS — уверенный уровень NVMe. Полный набор тестов CPU, диска и сети собран в гайде как протестировать VPS.
Почему у дешёвых хостеров «SSD» может быть медленным
Слово «SSD» на витрине тарифов само по себе ничего не гарантирует. Типичные причины медленного диска:
- Лимиты IOPS. Гипервизор позволяет ограничить виртуальную машину, например, 500 IOPS — формально диск твердотельный, а по отзывчивости ближе к HDD.
- Оверселлинг. На один накопитель сажают столько клиентов, что очередь запросов постоянно забита. Симптом — скорость «плавает» по времени суток.
- Старые накопители. Изношенные SATA SSD потребительского класса заметно деградируют под постоянной записью.
- Сетевые хранилища. Данные едут по сети до СХД, и задержка каждой операции выше, чем у локального NVMe, даже при красивых паспортных IOPS.
- Контейнерная виртуализация. В OpenVZ/LXC «сосед» может занять дисковую очередь целиком; KVM изолирует ресурсы честнее — подробности в статье KVM или OpenVZ.
Вывод: выбирая тариф, смотрите не на слово «SSD», а на конкретику — тип накопителя, тип виртуализации и возможность быстро всё проверить. Чек-лист выбора — в статье как выбрать VPS-сервер. В тарифах Cheap-Host с этим прозрачно: NVMe стоит во всех конфигурациях, виртуализация — KVM с выделенными ресурсами, а сервер разворачивается за 45–60 секунд — можно сразу прогнать fio и убедиться в цифрах самостоятельно.
FAQ
Чем NVMe отличается от обычного SSD?
Оба — флеш-накопители без движущихся частей. Разница в подключении: обычный SSD работает через SATA и протокол AHCI с одной очередью команд, NVMe — напрямую через PCIe с тысячами параллельных очередей. Итог: 3 000–7 000 МБ/с против ~550 МБ/с и в разы меньшая задержка операций.
Увидит ли небольшой сайт разницу между SSD и NVMe?
Статический лендинг с включённым кешем — почти нет. Но любой проект с базой данных (WordPress, интернет-магазин, форум) быстрее отдаёт некешированные страницы, шустрее работает в админке и стабильнее переживает наплыв посетителей. Обновления, бэкапы и деплой ускоряются в любом случае.
Как убедиться, что на VPS действительно NVMe?
Только измерением: внутри виртуальной машины диск виден как виртуальное устройство (/dev/vda), и его имя ничего не скажет. Запустите fio-тест случайного чтения 4K: десятки тысяч IOPS и выше — уровень NVMe, единицы тысяч — повод задать хостеру вопросы.
Что такое IOPS и сколько их нужно моему проекту?
IOPS — число операций ввода-вывода в секунду. Небольшому сайту хватает нескольких тысяч, нагруженной базе данных нужны десятки тысяч. Запас не бывает лишним: пики трафика, бэкап или переиндексация съедают IOPS мгновенно.
NVMe — это дорого?
Уже нет. Накопители подешевели, и нормальная практика — ставить их во все тарифы без наценки. У Cheap-Host, например, NVMe есть даже в конфигурации за 450 ₽/мес.
Вывод
NVMe — не маркетинговая приставка, а другой класс дисковой подсистемы: прямое подключение по PCIe, до ~64 тысяч очередей команд вместо одной у AHCI и задержки в микросекундах. Для сервера это быстрые запросы к базе, низкий TTFB и предсказуемая работа под нагрузкой. Если для проекта нужен быстрый VPS — у Cheap-Host есть тариф Pro за 750 ₽/мес: 12 vCPU, 16 ГБ RAM и 128 ГБ NVMe на KVM-виртуализации, с безлимитным трафиком и выдачей сервера за минуту. Разверните, прогоните fio из этой статьи — и цифры всё скажут сами: cheap-host.onl.