NVMe
NVMe (Non-Volatile Memory Express) — это протокол доступа к энергонезависимой памяти, разработанный специально для работы со скоростными SSD через шину PCI Express (PCIe).
Что даёт
Старые протоколы вроде AHCI создавались ещё во времена механических жёстких дисков (HDD). Они используют одну очередь всего на 32 команды, из-за чего быстрые чипы флеш-памяти упираются в узкое горлышко шины и контроллера.
NVMe убирает этот затор. Протокол поддерживает до 64 000 очередей, в каждую из которых можно отправить до 64 000 команд одновременно. Данные передаются напрямую через линии PCIe, минуя устаревшие SATA-контроллеры. Это снижает задержки (latency) с миллисекунд до единиц микросекунд и даёт огромную скорость случайного чтения и записи (IOPS).
Плюсы на практике:
- Быстрый бэкенд и базы данных. Реляционные БД (PostgreSQL, MySQL), требовательные к дисковому вводу-выводу, перестают висеть в состоянии iowait. Запросы на чтение и запись сложных индексов выполняются мгновенно.
- Ускорение билдов и деплоя. Сборка проектов с десятками тысяч мелких файлов (например, тяжелые node_modules) или распаковка архивов на диске происходят в разы быстрее.
- Работа со статикой. Чтение и отдача больших файлов, тяжелого медиаконтента или кеша веб-сервера больше не упирается в лимиты пропускной способности накопителя.
Как использовать
В инфраструктуре и на хостинге NVMe выбирают под задачи, упирающиеся в дисковый ввод-вывод (I/O-bound):
- Базы данных и аналитика. Если в мониторинге видно, что CPU простаивает, а очереди диска (await/utilization) зашкаливают — перевод базы на NVMe обычно снимает проблему без переписывания запросов.
- Высоконагруженные веб-серверы. Для сайтов с высокой посещаемостью, где активно используется локальное кеширование или генерируется много временных файлов.
- Хранилища для виртуализации. В виртуальных машинах и контейнерах (Docker, KVM) производительность виртуального диска напрямую зависит от скорости физического накопителя ноды.