Диск

Что такое NVMe?

Также известно как: NVM Express
Определение

NVMe is a storage protocol that connects solid-state drives directly over PCIe, reaching roughly 500,000 random IOPS with sub-100-microsecond latency. Its deep parallel queue model is architecturally different from SATA, which inherits a single-queue design intended for mechanical disks.

Почему NVMe важен

Его модель с глубокими параллельными очередями архитектурно отличается от SATA, которая унаследовала конструкцию с одной очередью, предназначенную для механических дисков. Для приложений, работающих с базами данных, разрыв в случайных операциях ввода-вывода — это та разница, которую пользователи действительно ощущают.

NVMe на практике

Когда вы предоставляете NVMe-инстанс, первое, на что вы смотрите, — это глубина очереди вашей дисковой нагрузки. Коробка на SATA выдохнется на нескольких тысячах IOPS под нагрузкой; NVMe держит примерно 500 000 случайных IOPS с задержкой менее 100 микросекунд. Перестройте ваши тесты sysbench и fio на randread и randwrite, а не на последовательную пропускную способность, и посмотрите на разницу в коммитах базы данных. Если вы оптимизируете под размер блока SAS-диска или игнорируете настройки планировщика I/O, вы оставляете большую часть возможностей железа неиспользованной. Ошибётесь — и ваша задержка вырастет в сто раз на нагрузках, которые реально задевают диск.

Что люди часто понимают неправильно в отношении NVMe

Люди считают, что NVMe — это просто более быстрый SSD, и выбирают план по размеру в ГБ, а не по IOPS. Исправление: отличие NVMe — это параллельная модель очередей, а не только сырая пропускная способность. Огромный SATA-диск всё равно упрётся в одинарную очередь на случайном I/O; диск меньшего размера на NVMe обойдёт его для нагрузок баз данных. Размер важен, но для задач, чувствительных к задержке, метрика, которая вам аукнется, если её игнорировать, — это IOPS.

NVMe — частые вопросы

Каких случайных IOPS достигает NVMe?

Примерно 500 000 случайных IOPS, согласно опубликованному определению. Это примерно в тысячу раз больше, чем у типичного SATA SSD. Задержка менее 100 микросекунд означает, что при маленьких случайных чтениях и записях вы не ждёте механику диска или одиночную SATA-очередь — единственный путь — это контроллер и шина PCIe.

Нужен ли мне NVMe для веб-сайта?

Только если ваша нагрузка связана с интенсивным произвольным вводом-выводом, например, база данных или кэш. Раздача статических файлов или сайт с низким трафиком не заметят разницы между NVMe и SATA. Разрыв проявляется при длительных смешанных нагрузках, когда единственная очередь SATA насыщается и задержки возрастают. Если вы запускаете Postgres или Redis, NVMe позволит поддерживать низкие хвостовые задержки.

Где встречается NVMe

Больше из раздела «диск»

IOPS
IOPS показывает, сколько отдельных операций чтения или записи устройство хранения выполняет в секунду.
RAID 10
RAID 10 зеркалирует данные на парах дисков и чередует по зеркалам, обеспечивая как избыточность, так и высокую производительность, но за счёт половины полезной ёмкости.
Snapshot
Снимок — это копия диска виртуальной машины на определённый момент времени, создаваемая мгновенно и хранящаяся на той же инфраструктуре.