Можно ли доверять тестам современных NVMe-дисков? Прямые замеры скорости работы #NVMe давно превратились в проверку работы DRAM-кеша и контроллера. Не имеющее отношение к скорости NAND-модулей памяти (QLC, TLC, MLC).
NVMe-диски неизбежно эволюционировали ради новых версий #PCIe (шины) и более плотное хранение данных в NAND-модулях. Почти в каждом появился мощный контроллер с DRAM-кешом из модулей DDR4 памяти. Большинство моделей имеет два режима работы, с поддержкой 4096-страниц и режим совместимости с эмуляцией 512-байтных страниц.
Фактически, NVMe-диски превратились в отдельные компьютеры, с очень непростой логикой работы и ориентированной на определённые виды или профиль нагрузок. Проявляется это разными путями, один из вариантов обусловлен псевдо-SLC кешами у некоторых моделей. Когда часть ёмкости TLC NAND-модулей резервируется под нужды контроллера и не используется для хранения данных пользователя.
NVMe-дискам вообще свойственно показывать крайне высокую скорость работы лишь поначалу, будучи пустыми. После чего скорость резко падает и более никогда не восстанавливается, но это происходит не одинаково, даже у моделей идентичных в аппаратном плане (по железу).
Вот у Kingston есть двух-трёх летней давности модели KC3000 и Kingston FURY RENEGADE обе под PCIe 4.0 и одинаковые по начинке:
Но работают эти две модели различным образом, если 2 ТБайтные сравнивать по скорости работы дисков при:
записи на пустой сперва 250 Гбайт и потом 650 Гбайт (скорость в 1750 Мбайт/сек стабилизируется только после записи первых 250 Гбайт),
запись на уже заполненные данными до 80% ёмкости — скорость различается то как по характеру изменения так и в численных показателях.
Неизменно и одинаково у этих двух моделей лишь то, что обе модели показывают декларируемую скорость работы лишь на первых гигабайтах, пока объёмы укладываются в DRAM-кеш контроллера (как и большинство современных NVMe накопителей).
Таким образом и получается, что тестировать NVMe надо с учётом не только выходя за пределы DRAM-кеша, но и:
Работа NVMe-диска важна для загрузки ЦПУ при полнодисковом шифровании — через LUKS в случае #linux. Нужен ли десяти-ядерный процессор на операциях в пределах DRAM-кеша контроллера?
Не особо мощные процессоры в ноутбуках благодаря AES-NI показывают скорость шифрования близкую к 1700 Мбайт/сек работы NVMe-диска. Если аппаратное ускорению AES в режиме XTS выдаёт 1760 Мбайт/сек на одном ядре, то скорость работы остальных шифров будет гораздо скоромнее — у Serpent или Кузнечика выйдет порядка 530 МБайт/сек, на каждом ядре ЦПУ.
Т.е. при AES-шифровании в ноутбуке хватит четырёх-ядерного процессора для обслуживания небольших обменов данными с NVMe-дисками, выполняющихся на скоростях в пять-шесть гигабайт/сек. А для обмена данными более масштабными по объёму будет хватать и одного ядра.
Режимы работыКакие страницы использовать 4096 или же 512? Отключение эмуляции 512-байтных страниц понижает температуру контроллера и увеличивает скорость работы накопителя на десять процентов или около того. Проверить можно через:
sudo nvme id-ns -H /dev/nvme0n1
Если показывает два режима и текущий в работе 512, а не 4096, то можно отформатировать NVMe-накопитель с потерей всех данных на нём:
sudo nvme format --lbaf=N /dev/nvme0n1
Где «N» — это «1» если показывалось «LBA Format 1» соответствующее 4096-байтным страницам.
@4X_Pro одна из причин появления этого поста про NVMe именно в том, что уже в который раз не замечаю особой разницы между SSD vs. NVMe в повседневном использовании десктопов и ноутов.
что при наличии полнодискогов шифрования, что без него. может у меня игры не те, может не такие большие и объёмные проекты собираю из исходного кода. всего то на пару миллионов строк.
по тестам NVMe превосходят SSD в разы по скорости и по количеству IO-операций. и возможно это важно, очень может быть, что объективно заметно. вот только не по личным ощущениям.
@4X_Pro кстати, это скорее SSD уже дороже, чем NVMe.
Переплачивать приходится скорее тем, у кого нет возможности использовать NVMe из-за отсутствия M.2 слота и потому приходится покупать SSD.
В десктопах вопрос решается PCIe адаптером с M.2 на две или четыре линии, вставляемом в любой свободный PCIe-слот.
Вот только NVMe диск нужно в такой адаптер вставлять самый обычный, а не упакованый в радиатор охлаждения.
@4X_Pro SATA-диски сейчас дороже NVMe-дисков. и если выбирать чем заменить один из двух изношенных SSD, то дешевле выйдет NVMe.
а вот если на материнской плате нет M.2 разъёма, то либо придётся уже переплачивать, покупая SSD подключающиеся по SATA. или втыкать в свободный PCIe-слот плату с одним или двумя M.2 разъёмами, в которые уже вставлять NVMe-диск.