В прошлом году SSD впервые в истории обогнали HDD по объёму продаж. В отличие от винчестеров, здесь сумасшедший технический прогресс. За несколько лет рынок меняется кардинально: интерфейс NVMe вместо SATA, память SLC→MLC→TLC→QLC…
Замена системного диска с HDD на SSD — иногда самый мощный апгрейд, который можно сделать с компьютером. Главный прирост в отклике системы и софта даёт скорость случайного доступа, которая даже у самых дешёвых SSD на пару порядков быстрее, чем у HDD. А современные SSD практически не уступают по скорости оперативной памяти. Основная проблема — живучесть. При интенсивной эксплуатации они слишком быстро выходят из строя.
Давайте посмотрим, что произошло на рынке потребительских SSD за последние десять лет. И как выбор конкретных технологий влияет на производительность.
SSD в целом становятся всё более сложными, поэтому объективная оценка их производительности — не простое занятие. Из-за этого у производителей появляется всё больше способов, как ввести в заблуждение потребителей и спрятать реальную производительность за некой единой «священной» метрикой.
В январе 2021 года издание AnandTech провело тестирование девяти современных моделей SSD на 1 ТБ. Описание этого эксперимента показывает — никакой единой метрики не существует.
Новая флэш-память
SSD на массовом рынке появились более десяти лет назад. Например, компания Intel выпустила свои первые SSD в 2008 году: это были модели X25-M и X18-M объёмом 80 ГБ с форм-фактором 2.5″ и 1.8″, соответственно. Первая вышла по рекомендованной цене $595…
Intel X25-M
Много воды утекло с тех пор. Сейчас мы видим десятки терабайтных моделей по гораздо меньшей цене. Но основные принципы работы твёрдотельных накопителей не изменились. И главные проблемы флэш-памяти NAND по-прежнему актуальны:
- невозможность напрямую вносить изменения в записанные блоки данных во флэш-памяти, запись новой информации производится в пустые ячейки;
- несоответствие между размерами страниц NAND и размерами блоков стирания;
- снижение производительности при заполнении накопителя.
Бенчмарки старых SSD образца 2009 года
Вернуть изначальную производительность старых SSD можно было только с помощью утилиты HDD ERASE, источник
Всё это по-прежнему актуально. Современные твёрдотельные накопители намного больше, быстрее и дешевле, но их контроллеры и прошивки не решили названные проблемы до конца. У современных SSD появились и некоторые дополнительные проблемы, которые ещё больше усложняют механизмы их работы и затрудняют объективное тестирование.
Примерно в 2014 году появились накопители с памятью TLC NAND и поддержкой прямого интерфейса NVMe. К настоящему времени обе эти технологии практически захватили рынок: память MLC практически исчезла, а NVMe — дефолтный интерфейс для новых моделей. Более высокая производительность PCIe/NVMe по сравнению с SATA даёт ошеломляющую разнице в бенчмарках, но с точки зрения дизайна бенчмарков на самом деле важнее был переход на TLC. Это связано с тем, что потребительские твёрдотельные накопители TLC в значительной степени зависят от кэширования SLC.
В накопителе чем больше битов мы записываем в ячейку, тем она сложнее (и медленнее). Современные диски записывают 3 бита на ячейку (TLC) или 4 бита (QLC). Оба варианта медленнее для записи, чем запись 1 бита на ячейку (SLC). Поэтому в SSD часть ячеек обрабатывается в «режиме SLC», это позволяет увеличить поток входных данных.
Недостатком является то, что данные из SLC NAND потом надо переписать в блоки, которые работают как MLC/TLC/QLC. Этот процесс часто называют фолдингом, он обычно автоматически выполняется во время простоя накопителя, где задержка не важна. Таким образом освобождается место в кэше SLC для дальнейшего использования.
Обязательное SLC-кэширование в современных SSD
Кэширование SLC создаёт два уровня производительности — один внутри кэша, и один снаружи. Большинство пользователей никогда не видят производительности «снаружи кэша». Реальные потребительские рабочие нагрузки почти никогда не пишут десятки или сотни ГБ непрерывно, особенно на высоких скоростях (быстрее, чем гигабитный Ethernet) — даже запись несжатого видео 4k60 немного меньше 1,5 Гбит/с, в то время как высококачественные NVMe теперь предлагают пиковую скорость записи выше 4 Гбита/с. Но на самом деле включение более реального варианта использования с адекватными перерывами для диска, чтобы освободить кэш SLC во время простоя, делает результаты тестирования более релевантными для многих пользователей.
Размеры кэша SLC также зачастую зависят от объёма свободного места на диске. Например, при заполнении SSD на 75% может остаться только 10% от обычного размера кэша SLC. Тесты, которые работают с почти пустым диском, могут преувеличить преимущества кэширования SLC по сравнению с тем, что испытывают пользователи, когда они фактически используют большую часть рекламируемой ёмкости своего накопителя.
Изменение размера кэша SLC в зависимости от объёма свободного места в Intel SSD 665p
Накопители QLC ещё больше усложнили ситуацию, поскольку они пытаются держать кэш максимально заполненным для ускорения доступа к данным.
Накопители NVMe (и некоторые SATA) также чувствительным к температуре. Накопители M.2, потребляющие более 5 Вт на пике, могут сильно нагреваться, поэтому сейчас многие из них поставляются в комплекте с радиаторами.
Данные SSD: локальность и DRAM
Кроме интерфейса (SATA, PCIe 3.0, PCIe 4.0) и выбора флэш-памяти TLC или QLC NAND, есть ещё несколько важных технологических различий между SSD высокого класса и начального уровня. Например, метод хранения метаданных Flash Translation Layer (FTL) — информации, какое физическое местоположение соответствует каждому логическому адресу (Logical Block Address, LBA).
В течение нескольких лет большинство SSD использовали большую простую таблицу поиска. Несложно посчитать, что для диска 1 ТБ с секторами по 4 КБ требуется таблица отображения FTL почти на 1 ГБ. Это увеличивает стоимость привода, а производители SSD пытаются снизить свои расходы. Поэтому интерфейс DRAM исчез практически со всех контроллеров начального уровня — и им приходится как-то управлять гигабитной таблицей FTL, не имея возможности загрузить её в память целиком.
У контроллеров обычно есть встроенный кэш небольшого размера, который исчисляется в мегабайтах. Другой вариант — заимствовать часть оперативной памяти процессора через функцию буфера памяти хоста (HMB). Такая возможность есть в интерфейсе NVMe.
Но в любом случае, отсутствие полноценного буфера DRAM сказывается на производители всех SSD: во-первых, случайные чтения требуют дополнительной операции чтения для извлечения данных из таблицы до того, как запрошенные данные могут быть прочитаны. Во-вторых, накопителям труднее выравнивать нагрузку и управлять сбором мусора, поэтому у них обычно падает производительность при больших нагрузках на запись и почти полном заполнении.
Приводы
Аппаратная начинка и архитектура диска непосредственно влияет на его производительности. Для иллюстрации AnandTech приводит бенчмарки девяти современных SSD ёмкостью 1 ТБ из различных сегментов рынка, то есть разных классов.
- Samsung Samsung 980 PRO. последний флагман NVMe от Samsung — это их первая модель PCIe 4.0 для потребительского рынка, а также первая модель PRO, использующая TLC NAND вместо MLC.
- Silicon Power US70. Один из многих приводов с контроллером Phison E16 и TLC NAND. Именно эта комбинация впервые вывела PCIe 4.0 на потребительский рынок SSD-накопителей в 2019 году, а сейчас контроллеры постепенно меняют на Phison E18.
- Kingston KC2500. Привод PCIe 3.0 с контроллером Silicon Motion SM2262EN, который настроен на агрессивное кэширование SLC и обычно обеспечивает лучшую в своём классе производительность при низкой глубине очереди.
- SK hynix Gold P31. Преимущества вертикальной интеграции проявляются в том, что согласованная комбинация ультрасовременного (хотя и все еще PCIe 3.0) контроллера и NAND позволяет этому 4-канальному приводу работать наравне с 8-канальными приводами, устанавливая рекорды энергоэффективности.
- Mushkin Helix-L. Бюджетный NVMe-накопитель использует TLC NAND и сокращает затраты с помощью контроллера DRAMless Silicon Motion SM2263XT, который использует функцию буфера памяти Host Memory Buffer, заимствуя до 64 МБ оперативной памяти из системы.
- Corsair MP400. Представляет ещё одну популярную категорию бюджетных накопителей. Здесь работает связка из дешёвой и более медленной QLC и 8-канального контроллера Phison E12S, значительное улучшение по сравнению с 4-канальным Silicon Motion SM2263 в первых накопителях QLC NVMe, таких как Crucial P1 и Intel 660p/665p. Имеется кэш DRAM, но только 512 МБ, вдвое меньше, чем в обычных или высококлассных моделях.
- Samsung Samsung 870 EVO. совершенно новый накопитель TLC SATA от Samsung сочетает 3D NAND и контроллер последнего поколения.
- SK hynix Gold S31. Выпущенный в конце 2019 года с 72-слойной TLC, это довольно распространённый на массовом рынке SATA-накопитель с немного более низкой производительностью, чем ведущие SATA-накопители, но хорошей ценой.
- Samsung 870 QVO. Накопитель QLC SATA второго поколения использует тот же первоклассный контроллер, что и 870 EVO, поэтому его недостатки полностью связаны с более медленной и дешевой флэш-памятью QLC NAND.
При работе с SSD нужно понимать, что накопитель показывает максимальную производительность только под Linux, и тестировать его тоже удобнее здесь. Во-первых, Microsoft до сих пор не выпустила DirectStorage API для Windows. Во-вторых, Linux предлагает гораздо большую прозрачность и контроль над оборудованием.
Серия тестов AnandTech Storage Bench (ATSB) состоит из трёх циклов: Light, Heavy и Destroyer. В первом режиме замеряется скорость выполнения набора «лёгких» задач, соответствующих относительно лёгкому использованию настольного компьютеров: браузер, текстовый редактор и прочее. В режиме Heavy очередь задач возрастает на порядок, в режиме Destroyer — ещё на порядок. Циклы Light и Heavy прогоняются сначала на полностью пустом диске, а потом на частично заполненном.
На странице с результатами показаны средняя скорость передачи данных, средняя задержка, задержки записи и чтения, а также эти показатели для 99-го перцентиля, и энергопотребление каждого накопителя.
Нужно заметить, что обычный юзер 99% времени использует SSD в лёгком режиме. Интенсивный режим включается только изредка, например, во время инсталляции игр или резервного копирования.
Серый график — показатель нового пустого SSD, чёрный — частично заполненного.
Как обсуждалось ранее, размер кэша MLC начинает серьёзно уменьшаться после заполнения диска на 50%. Это и отражается на результатах.
Средняя скорость передачи данных в режиме лёгкого использования (МБ/с)
Средняя задержка в режиме лёгкого использования (МБ/с)
Следующие тесты на среднюю скорость случайного чтения и среднюю скорость последовательной записи также запускались дважды: 1) на абсолютно пустом диске с операциями только в диапазоне первых 32 ГБ пространства; 2) при 80% заполнении без ограничения на операции. Разница между серым и чёрными столбцами отражает влияние кэширования SLC, контроллеров без буфера DRAM или с уменьшенным объёмом буфера.
Средняя скорость случайного чтения (МБ/с)
Средняя скорость последовательной записи (МБ/с)
Скорость передачи данных и средняя задержка — основные показатели для типичного варианта использования SSD. Но есть и другой класс тестов — синтетические. Они не столько отражают производительность привода в реальных задачах, сколько показывают разницу во внутренней архитектуре устройства, выпукло демонстрируя отличия в этой архитектуре. Поэтому разница между показателями может быть кардинальной.
Например, последовательное заполнение привода ставит целью оценить размер кэша SLC. Этот тест выходит далеко за пределы любой реальной рабочей нагрузки, а результаты сильно отличаются для разных приводов.
Последовательное заполнение привода: средняя скорость (МБ/с)
Управление питанием SSD жизненно важно для любой системы на аккумуляторах. Система управления питания поддерживает несколько режимов, в том числе простой режим неактивности (SATA ALPM, NVMe APST и PCIe ASPM), который больше подходит для настольных компьютеров и в таблицах обозначен как ‘Desktop Idle’, и режим глубокого сна, в котором задействуются все энергосберегающие функции, включая DevSleep (‘Laptop Idle’).
Потребление энергии в неактивном режиме (милливатт)
Даже без активации этих функций накопители потребляют в неактивном режиме очень мало: от 194 до 1152 мВт.
Скорость пробуждения (микросекунд)
Заключение
Накопители SSD очень сильно продвинулись за последние 10 лет. В частности, у них кардинально снизилось энергопотребление. В режиме ожидания оно гораздо меньше 1 ватта, а судя по логам, SSD обычно проводит в режиме ожидания 99% времени.
Технический прогресс в этой области действительно потрясающий, а некоторые производители считают, что накопители NVMe можно использовать вместо DRAM в неких специфических задачах. Так делает Intel с модулями Optane. В то же время средняя задержка чтения в PCI 4.0 сильно упала, поэтому обычный пользователь может и не заметить разницы PCI 4.0 по сравнению с Optane.
На правах рекламы
Наши эпичные серверы используют only NVMe сетевое хранилище с тройной репликацией данных. Вы можете использовать сервер для любых задач — разработки, размещения сайтов, использования под VPN и даже получить удалённую машину на Windows! Идей может быть много и любую из них поможем воплотить в реальность!