Conversation

Несерьёзный Выдумщик

Edited 3 days ago

Можно ли доверять тестам современных 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 и одинаковые по начинке:

  • контроллер Phison PS5018-E18,
  • DRAM-кеш по 1 GB DDR4 на каждый террабайт ёмкости,
  • NAND модули FB2560HUCM1 (Micron TLC 176 слоев)

Но работают эти две модели различным образом, если 2 ТБайтные сравнивать по скорости работы дисков при:

  • записи на пустой сперва 250 Гбайт и потом 650 Гбайт (скорость в 1750 Мбайт/сек стабилизируется только после записи первых 250 Гбайт),

  • запись на уже заполненные данными до 80% ёмкости — скорость различается то как по характеру изменения так и в численных показателях.

Неизменно и одинаково у этих двух моделей лишь то, что обе модели показывают декларируемую скорость работы лишь на первых гигабайтах, пока объёмы укладываются в DRAM-кеш контроллера (как и большинство современных NVMe накопителей).

Таким образом и получается, что тестировать NVMe надо с учётом не только выходя за пределы DRAM-кеша, но и:

  • с учётом нюансов работы псевдо-SLC кеша (и другой оптимизации под виды нагрузки),
  • количества оставшейся ёмкости — уровня заполненности данными накопителя.
Применимость и значимость скоростей

Работа 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-байтным страницам.

1
1
1
@grumb о, за информацию про 4096-байтные страницы — спасибо, не знал про такое! Если сподоблюсь поменять второй SSD на основном компьютере, пригодится.
Кстати, раз уж речь зашла о дисках, то как вы считаете, имеет ли смысл переплачивать за NVMe, который используется именно как второй диск (для игр, фильмов, личных архивов и т.п.) или для таких целей обычного SATA вполне достаточно, и для таких целей разница «на глаз» просто не будет заметна?
2
0
0

Несерьёзный Выдумщик

@4X_Pro одна из причин появления этого поста про NVMe именно в том, что уже в который раз не замечаю особой разницы между SSD vs. NVMe в повседневном использовании десктопов и ноутов.

что при наличии полнодискогов шифрования, что без него. может у меня игры не те, может не такие большие и объёмные проекты собираю из исходного кода. всего то на пару миллионов строк.

по тестам NVMe превосходят SSD в разы по скорости и по количеству IO-операций. и возможно это важно, очень может быть, что объективно заметно. вот только не по личным ощущениям.

0
0
0

Несерьёзный Выдумщик

@4X_Pro кстати, это скорее SSD уже дороже, чем NVMe.

Переплачивать приходится скорее тем, у кого нет возможности использовать NVMe из-за отсутствия M.2 слота и потому приходится покупать SSD.

В десктопах вопрос решается PCIe адаптером с M.2 на две или четыре линии, вставляемом в любой свободный PCIe-слот.

Вот только NVMe диск нужно в такой адаптер вставлять самый обычный, а не упакованый в радиатор охлаждения.

1
0
0

@grumb А что, уже появились desktopы, где SATA вообще нет? У меня вот не помню, то ли 4, то ли 6 SATA-дисков можно поставить (компьютер куплен в январе 2023 года). Или это актуально для всяких мини-форматов матплат и корпусов?

1
0
0

Несерьёзный Выдумщик

@4X_Pro SATA-диски сейчас дороже NVMe-дисков. и если выбирать чем заменить один из двух изношенных SSD, то дешевле выйдет NVMe.

а вот если на материнской плате нет M.2 разъёма, то либо придётся уже переплачивать, покупая SSD подключающиеся по SATA. или втыкать в свободный PCIe-слот плату с одним или двумя M.2 разъёмами, в которые уже вставлять NVMe-диск.

0
0
0