Использование Optane Memory для ускорения накопителей разных типов, включая и твердотельные

22

Методика тестирования накопителей образца 2018 года

Технологии Optane Memory мы посвятили достаточно большое количество материалов, так что, казалось бы, закрыли вопрос с ней полностью. То, что началось с теоретического описания работы новой технологии кэширования, в конце концов вылилось в семь статей — своеобразный мини-цикл:

Обзор твердотельного накопителя Samsung 860 Qvo емкостью 1 ТБ на базе QLC-памяти

Однако во всех случаях Optane Memory (равно как и предыдущую разработку компании) мы использовали по прямому назначению — для ускорения работы винчестера. В то же время, раз за разом некоторые читатели просили проверить, что будет, если «оптанизировать» не классический магнитный накопитель, а медленный твердотельный. В конечном итоге победила идея, что лучше один раз такое тестирование провести, нежели регулярно объяснять, почему оно лишено смысла. К тому же, раз мы в конце прошлого года логически завершили цикл материалов использованием «быстрого» настольного и «медленного» ноутбучного винчестера, а в начале этого познакомились с Samsung 860 Qvo емкостью 1 ТБ на базе QLC-памяти, как раз нацеленным в промежуток между жесткими дисками и массовыми SSD, есть смысл подвергнуть и этот накопитель такой же экзекуции. Так сказать, для полноты картины.

Представлен твердотельный накопитель Intel Optane Memory H10: Optane Memory и QLC объемом до 1 ТБ в одном SSD типоразмера M.2

Впрочем, идея впрячь в одну телегу коня и трепетную лань пришла в голову также и Intel. Хотя «наше всё» Пушкин А. С. и утверждал, что таковое неможно, но классик просто не успел познакомиться с гибридными винчестерами. Теперь же стараниями Intel на рынок выходит и первый гибридный SSD — Optane Memory H10, где 16 или 32 ГБ памяти 3D XPoint на плате М.2 2280 соседствуют с 256, 512 или 1024 ГБ «обычной» 3D QLC NAND. Понятно, что логика работы Н10 будет отличаться от гибридизации на базе чипсета, но предыдущие наработки компании в области кэширования наверняка стали базой данной разработки. Заодно и посмотрим, что́ можно было бы переделать: это нам поможет, когда будем тестировать накопитель Intel. Пока же он только объявлен, но еще не поставляется — а вот Optane Memory в связке с SSD на QLC можно протестировать прямо сейчас.

Участники тестирования

Винчестер Seagate IronWolf Pro 14 ТБ: обзор нового накопителя максимальной емкости

В упомянутой выше последней статье цикла об Optane Memory среди прочих участников присутствовали относительно старый ноутбучный терабайтник WD Blue WD10JPVX 1 ТБ и топовый nearline-винчестер Seagate IronWolf Pro 14 ТБ. Понятно, что оказаться в обычном ПК хоть «в гордом одиночестве», хоть в паре с Optane Memory без прочих накопителей ему «не светит», но для получения оценки сверху — вполне подойдет: остальные модели на пластинах 3,5″ как минимум не быстрее. Опять же: а вдруг и при использовании такого накопителя просто для хранения данных есть смысл «пришпорить» его кэшем? Вот этот вопрос уже вполне практический, поскольку на фоне стоимости винчестеров на 10-14 ТБ цены модулей Optane Memory (особенно младших модификаций) заметными не кажутся. Поэтому мы и проверили, как это работает с модулями на 32 и 64 ГБ, благо таковые использовались и совместно с WD Blue.

И их же мы возьмем в путь сегодня — но уже вместе с Samsung 860 Qvo. Тоже синтетический вариант (чем возиться с кэшированием — проще потратить деньги на Evo или Pro той же емкости), но раз уж некоторым он интересен... Почему бы и нет? :)

Таким образом, у нас получилось девять конфигураций: три испытуемых в трех вариантах — «без ничего», с 32 ГБ и с 64 ГБ. Больше никто из накопителей нам сегодня не понадобится.

Тестирование

Методика тестирования

Методика подробно описана в отдельной статье. Там можно познакомиться с используемым аппаратным и программным обеспечением. Единственное, что нам пришлось в очередной раз сделать — переключить режим работы дискового контроллера и установить Intel RST.

Поскольку сегодняшнее тестирование достаточно специфичное, мы не стали заносить результаты тестов в общую таблицу, они доступны в отдельном файле в формате Microsoft Excel. Так что желающие покопаться в цифрах (тем более, что не все они попадают на диаграммы) могут скачать его и удовлетворить любопытство.

Производительность в приложениях

В общем-то, на этом тему можно закрывать. Производительность тестов высокого уровня зависит от кэшируемого накопителя (что мы уже знаем), так что QLC+Optane оказывается самой быстрой конфигурацией, но... Но и одного 860 Qvo на практике более чем достаточно для того, чтобы производительность начала определяться другими компонентами системы вместо накопителя, а ускорить его можно менее чем на 5%. Очевидно, что заметить это невооруженным взглядом не сможет никто. Настольные же винчестеры «пришпориваются» в удачных условиях в полтора раза, а ноутбучные — во все два. Вот это уже ощущается очень хорошо.

Потенциально позиции связки QLC+Optane еще более привлекательны, однако относительно «голого» SSD кэширование увеличивает производительность лишь в 3-4 раза — а не в 25-35 раз, как в случае винчестеров. За второе можно и доплатить (вдруг пригодится), а за первое — не имеет смысла.

Предыдущая версия пакета оперирует более «легкими» нагрузками, да еще и операций записи в ней меньше, но принципиально результаты не меняются. Сами по себе винчестеры являются очень медленными накопителями, а ноутбучные модели — вообще очень-очень-очень медленны. Но при помощи Optane Memory, если повезет, и от них можно получить даже более высокую производительность, чем обеспечивает бюджетный SSD. Правда, последнему «везет» всегда, а кэширование может промахнуться — это основное различие. Сам по себе «бюджетный SSD» тоже можно ускорить подобным образом, но уже лишь количественно, а не качественно. Нет эффекта низкой базы — нет и вау-эффекта.

Последовательные операции

Специфика работы низкоуровневых утилит такова, что «рабочий» файл они создают непосредственно перед использованием — так что с большой вероятностью он окажется именно в кэше. В итоге до самого́ «основного» накопителя есть шансы не добраться, и для этого достаточно модуля на 32 ГБ. Во всяком случае, это справедливо при выбранном нами «рабочем объеме» в 16 ГБ («умолчальный» для этих утилит 1 ГБ позволит наслаждаться высоким количеством попугаев и владельцам модулей на 16 ГБ). А вот дальнейшее увеличение «рабочего объема», напротив, может устранить эффект от кэширования. Но поскольку сами модули Optane Memory на данный момент не так чтоб совсем «реактивные» (из-за интерфейса PCIe x2), драматично это только для винчестеров, причем медленных ноутбучных: их производительность в этом сценарии на порядок ниже, чем у кэширующего накопителя. Для «хорошего» же SSD разница сокращается до двух-трех раз — тоже немало, но уже не столь принципиально.

С записью же все еще интереснее. Модули Optane Memory на 32 ГБ в этом сценарии пишут лишь около 300 МБ/с. Это намного больше, чем «может» WD Blue, но уже лишь сопоставимо с быстрыми настольными винчестерами и меньше, чем скорость записи в SLC-кэш Samsung 860 Qvo (а его у представителей этой линейки — несколько десятков гигабайт). Соответственно, для 860 Qvo «внешнее» кэширование даже вредно (при использовании более быстрых модулей на 64 ГБ — тоже практически бесполезно). Повторимся: нет эффекта низкой базы — нет и вау-эффекта.

Случайный доступ

Задержки у памяти типа 3D XPoint ниже, чем у NAND-флэш, так что весомый прирост производительности от кэширования есть и здесь. Но не настолько радикальный, как у винчестеров — все-таки латентность NAND в сравнении с ними тоже уменьшается раз в 20, так что и ускорение получается в разы, а уже не на порядки. С одной стороны, лишним не будет. С другой — зачем увеличивать производительность, когда ее и так на практике хватает. «Возня» с винчестерами же имеет смысл именно потому, что им не хватает. Но и простое снижение задержек со сменой носителя уже снимает эту проблему — дальше можно не напрягаться. Тем более, что есть и тревожные звоночки: из-за увеличившихся накладных расходов (поскольку ПО кэширования пытается балансировать нагрузку) производительность оказывается более низкой, чем дают «оптанизированные винчестеры» (в случае которых ПО ничего такого сделать не пытается).

А при записи и от ускорения на коротких очередях ничего не остается — «собственный» SLC-кэш 860 Qvo справляется с работой лучше, чем «внешний» Optane.

При чтении разными блоками, но с единичной очередью в очередной раз наблюдаем, что сама по себе технология явно оптимизирована именно на работу с винчестерами в качестве «основных» накопителей. «Выжимать максимум» из тандема с SSD никто и не старался. Конечно, ускорение все равно есть, но если уж хочется наблюдать красивые цифры, лучше взять винчестер — дешевле обойдется :) А на практике сравнение результатов «голых» накопителей показывает, почему винчестеры полезно ускорять кэшированием и почему это не нужно делать с SSD.

Работа с большими файлами

Как и следовало ожидать, кэширование нам тут ничем помочь не может. Более того, в паре с SSD в многопоточном режиме кэширующий модуль может даже помешать, поскольку анализ дисковых операций (на предмет не стоит ли перенести эти данные в кэш) тоже не бесплатен с точки зрения системных ресурсов. Винчестеры с такими операциями справляются очень медленно, так что им — не мешает. А вот твердотельному накопителю, практически упирающемуся в таких сценариях в ограничения интерфейса — уже может.

Запись больших объемов данных — слабое место SSD на базе QLC-памяти. К сожалению, помочь ему кэшированием почти невозможно — именно потому, что объемы большие. При наличии Optane Memory на 64 ГБ (сейчас это официальный максимум для поставляемых кэширующих модулей, но не для технологии) система пытается «схитрить» (особенно в многопоточном режиме), записывая часть данных в кэш, но результирующий эффект невелик. Увеличить его можно, разве что используя кэширующий модуль принудительно и всегда (так работала технология Smart Response в режиме Maximized), однако для этого его объем нужно будет увеличить еще больше. Тогда уж проще (да и дешевле) емкость SLC-кэша наращивать.

Запись одновременно с чтением, да еще и по (псевдо)случайным адресам — очень плохой сценарий для винчестеров. Настолько плохой, что тут даже кэшированием части операций можно заметно увеличить производительность. Но 860 Qvo справляется с такой нагрузкой в 3-5 раз быстрее — и этого достаточно, чтобы ничего улучшить уже было нельзя (собственно, и «оптанизированный» винчестер до такого уровня не дотягивает). «Слабым местом» подобных SSD нужно считать, скорее, невысокую производительность на смешанных операциях с последовательным доступом — но на них и винчестеры-то никак «подстегнуть» не удается, не говоря уже о SSD.

Рейтинги

В принципе, некоторые операции ускорить кэшированием удается: если «подменить» основной накопитель более быстрым кэширующим, получатся и более высокие результаты. Но это если повезет. Причем, как мы видели выше, иногда производительность может по тем или иным причинам даже снизиться. С винчестерами такое почти не случалось, поскольку их собственное быстродействие в любых сценариях ниже (и намного), чем у Optane Memory. Для твердотельного же накопителя это справедливо не всегда — а вот накладные расходы растут всегда, и иногда могут стать заметными. Усредненный результат — да, улучшается... Однако винчестеры можно ускорить (хотя бы теоретически) в 25-50 раз, и это будет заметно — опять же, не всегда это будет выполняться, но удачных случаев окажется достаточно, чтобы вообще возиться с кэшированием. А вот SSD в лучшем случае ускорится в пару раз, и платить за это уже совершенно не интересно: можно просто купить всюду (и стабильно) более быстрый SSD.

Эта диаграмма еще более наглядна. Винчестерам кэширование нужно, чтоб «дотянуться» до уровня бюджетных твердотельных накопителей. SSD (даже самым дешевым) это не требуется — они как раз и есть те самые [бюджетные] твердотельные накопители. Ускорить их работу в части сценариев, впрочем, можно — но это всегда будет количественным (и не всегда заметным) улучшением, а не качественным.

Итого

Ускорять твердотельные накопители внешним кэшированием — значит, ремонтировать то, что и не ломалось. В части сценариев у них с производительностью все и без того неплохо, а где не слишком хорошо — там и кэш не поможет (собственно, «не хорошо» зачастую как раз потому, что не справляется «внутреннее» SLC-кэширование). Соответственно, нет смысла тратить деньги на ускорение медленного SSD — лучше уж пустить бюджет на приобретение быстрого.

Из этого, однако, не стоит делать выводы о бесполезности гибридных SSD — в них можно использовать другие алгоритмы работы, благо все компоненты изначально рассчитаны на совместную работу. В частности, память 3D XPoint может использоваться как замена SLC-кэша — бесплатного, но не всесильного. Возможна и оптимизация распределения данных по областям. Но все это будет иметь смысл проверить на практике, когда к нам попадет гибридный Optane Memory H10. Вопрос же использования модулей Optane Memory для ускорения системы с «обычным» SATA SSD, как нам кажется, можно закрывать.

Андрей Кожемяко
Optane
24 комментариев
Комментировать
Так ещё на заре развития ССД они имели в среднем 500мб запись и 500мб чтение. И этих параметров за глаза, при том что всем раньше 100-200мб/с хватало на дисках, но задержки. ССД решил проблему задержек, увеличил скорость с 150мб до 500, естественно этого будет хватать и 10 лет и 20, сейчас прошло 10 лет уже. Это больные люди с завышенным самомнение всё хотят быстрее 2гб/с 3 гб 5 гб. Принимайте лекарства, господа.
2
Ответить
Современный процессор может жевать RAW'ы на простых операциях быстрее чем 500 мегабайт в секунду ;-)
И это даже если с видео не работать.
2
Ответить
Вы все рассуждаете про home PC, которому от новой технологии смысла нет. Но ведь фишка то именно в серверах и их нагрузке на ФС. А где тесты на эту тему?
2
Ответить
Optane как L2ARC и ZIL для SSD-based ZFS pool? Интересная идея.
Только 4-8 SSD в одном пуле всё равно будут быстрее, я подозреваю.
А если взять 6-10 то и заметно надёжнее.
2
Ответить
Ну понятно, что L2ARC надо делать после набивки оперативы, что бы последние 0.01% хитрейта подобрать.
2
Ответить
«Но ведь фишка то именно в серверах и их нагрузке на ФС»
И какое отношение оная «фишка» имеет конкретно к Optane Memory?
2
Ответить
Ну короче при объёмах > кэша оно бессмысленно.
А при объёмах < кэша проще писать в сам кэш.
2
Ответить
AT
Вопрос только в чей. Многие считают, что виндового достаточно. Ан, нет. Он оказывается заметно медленнее сторонних решений. Лично я 24/7 дома использую Primo RamCache. И что интересно, мне пришлось отказаться от по своему удобного рамдрайва того же разработчика и лучшего на рынке, потому что я внезапно выяснил, что работает он, в отличие от рамкэша, в однопоточном (речь про загрузку ЦПУ) режиме. В связи с чем и ограничен потолком ~12 ГБ/с (это при моих-то почти 100 предельных на 4-х каналах памяти). Рамкэш же утилизирует до 45 ГБ/с (красавчик!).
На мой взгляд, в статье не хватает ещё сравнения с бустом рамкэшем, чтобы вообще все точки над i и ё для читателей встали на свои места. Для эпизодических домашних нагрузок, рамкэш вместо дорогих оптанов — самое милое дело. Имхо, конечно же, но вполне даже убедительное. Его объём для большинства задач нужен очень небольшой. Даже всего 0,5 ГБ способны сделать жизнь много комфортнее обычной. А большего и не нужно.
2
Ответить
«рамкэш вместо дорогих оптанов»
На фоне цены «рам» они как раз вполне себе дешевые :)
Дорогие разве что сравнительно с NAND
«Даже всего 0,5 ГБ способны сделать жизнь много комфортнее обычной»
В лучшем случае в такой объем влезут _некоторые_ темпы. И то не все
Даже не выходя за пределы самых элементарных сценариев — ну там попробуйте открыть архив на гигабайт и чего-то в нем поделать
«внезапно выяснил, что работает он, в отличие от рамкэша, в однопоточном (речь про загрузку ЦПУ) режиме»
Внезапно дисковые операции однопоточные сами по себе как правило, угу
Даже идеологически — в AHCI-протоколе, например, есть ровно _одна_ очередь команд на накопитель
2
Ответить
AT
«Однопоточные» дисковые операции только в части самой физической записи/чтения по природе своей однопоточны. А вот запросы на них могут валиться пачками с разных приложений и гораздо чаще, чем выполняется одиночная операция чтения/записи. Для записи их можно и нужно объединять в более крупные блоки, чтобы писать за раз. А чтение может выполняться из разных строк/чипов/банков/подложек памяти (это только у старых нжмд головки разных блинов должны были синхронно перемещаться) и выполняться вполне себе параллельно. Рейд 0 же отличнейший живой пример того, как часто можно почти удваивать скорость грамотной реализацией алгоритмов и чтения и записи. Кто решил, что ЦПУ не может стать узким местом при большом числе iops?
Тестовая загрузка случайной мелочью в ATTO, например, отлично показывает этот боттлнек. И на пиковую загрузку ПСП тест выходит далеко на не самом мелком размере сектора. И, опять же, Рамкэш-то этой проблемы был успешно лишён.
2
Ответить
«А вот запросы на них могут валиться пачками с разных приложений»
Толку-то, если валятся они в _одну_ очередь? ;)
«это только у старых нжмд головки разных блинов должны были синхронно перемещаться»
У любых синхронно перемещаются, внезапно
«Рейд 0 же отличнейший живой пример того, как часто можно почти удваивать скорость грамотной реализацией алгоритмов и чтения и записи»
Любой SSD — куда более удачный пример этого. Тем более, что там-то как раз скорость часто увеличивается пропорционально количеству каналов (хотя бы в синтетике; в реальности-то понятно с QD1 нечего параллелить — все упирается в задержки носителя). А в RAID0 ускоряются лишь некоторые сценарии… рандом вон практически не растет — какой там удвоение
«И, опять же, Рамкэш-то этой проблемы был успешно лишён»
Какой именно проблемы? Умения обманывать бенчмарки? ;)
2
Ответить
1. А зачем они валятся всего в одну очередь (когда узким местом становится именно она)?
2. Вы прекрасно поняли, что «старые» я имел в виду про сам класс дисков. Так что, «внезапная» попытка прицепиться к словам — вам не засчитана.
3. Раз даже в SSD предусмотрели несколько каналов, чтобы не ограничивать производительность, что же в рамдрайве-то вдруг про этот способ забыли? ;)
4. Вот сидят эти писатели софта, делать, конечно, им нечего и они думают-мучаются, как бы нам обмануть очередной бенчмарк, ага...
(мде… что-то дискуссия стремительно начала вырождаться)
2
Ответить
«1. А зачем они валятся всего в одну очередь»
А больше нету :)
«когда узким местом становится именно она»
Так не становится же
" 3. Раз даже в SSD предусмотрели несколько каналов, чтобы не ограничивать производительность, что же в рамдрайве-то вдруг про этот способ забыли?"
А очередь, кстати, у всех SSD использующих AHCI-протокол (т.е. все SATA и некоторые PCIe) при этом все равно всего одна, прикиньте
«4. Вот сидят эти писатели софта, делать, конечно, им нечего и они думают-мучаются, как бы нам обмануть очередной бенчмарк, ага»
Это ж не специально :)
Авторы низкоуровневых бенчмарков для получения _корректных результатов_, естественно, вырубают системное кэширование. Ну т.е. не то, чтоб вырубают, а обходят. Это известно как делать. И приходится делать — чтоб попугаи были более-менее приближенными к дейстивительности, а не туфтовыми
А всякие маргинальные утилитки, разумеется, никак не учитываются
В итоге попугаи получаются очень красивыми, а других эффектов пока никто не обнаружил ;)
2
Ответить
2. Вообще-то, я уже даже привёл факты (один поток на ЦПУ), когда становится. Читайте меня внимательнее.
3. У очереди есть замечательное свойство «без проблем размножаться». Нужно просто им вовремя и к месту пользоваться.
4. А зачем авторы его «выключают» (принудительно?), когда я его специально включаю, чтобы сравнить результаты с ним и без него? (когда меня интересуют не физические ТТХ накопителя, а разница ощущений от реальной работы именно кэша и его отсутствия) Сможете объяснить, зачем они это делают? (и где тогда утилиты тестирования эффективности именно разных кэшей, а не накопителей?)
2
Ответить
Не всё так просто. При обращении к БД (неожиданном :) ), высокая скорость произвольного чтения роль играет (я про Оптан, конечно)
Ну и сценарии одновременного чтения и записи обыденны.
2
Ответить
еще-б добавить в обзор 970 Evo Plus, чистый, без примочек.
2
Ответить
В статье еще сказано о гибридизации на уровне чипсета…
Если это все происходит действительно на уровне чипсета то как я пони маю оно доступно без каких-либо усилий со стороны ОС и под тем-же ESXi будет гибридный накопитель работать как родной.
Иначе это все реализовано с участием проца — на уровне драйверов т.е. софта.
2
Ответить
Тогда ещё и ДРАМ туда же воткнуть впридачу со съёмной микробатарейкой. Тогда вообще наступит счастье (особенно по случайному мелкому доступу).
2
Ответить
SSD самое большое разочарование!
2
Ответить
Слушайте, я вот прочитав по диагонали всю эту кучу статей про кеширование, задам возможно один глупый вопрос. Вот у меня есть модуль M.2 Intel 800P на 118 ГБ. Я могу это просто воткнуть в материнскую плату и использовать как единственный накопитель в системе, если его ёмкости мне за глаза хватает? Всё что мне нужно, это быстро крутить базу данных объёмом всего-то на 6-10 ГБ на обычной Win10Pro. Такой вариант использования у этих Optane Memory предусмотрен? Не вместЕ, вместО обычного SSD или тем более HDD, в виде единственного накопителя в системе? То есть в данном случае скорее как более дешёвый аналог RAM-диска.
2
Ответить
" Такой вариант использования у этих Optane Memory предусмотрен?"
У кого «этих»? Разумеется, и модули работают как обычный накопитель… без вопросов
Причем там уже (в отличие от кэширования) каких-то требований к ОС и прочему оборудованию нет
«Вот у меня есть модуль M.2 Intel 800P на 118 ГБ»
… а у вас вообще не Optane Memory, а Optane SSD, кстати. Для 800Р работа в качестве кэширующего модуля — недокументированная фича. Получающаяся только за счет использования того же контроллера. А 900Р/905Р как кэширующие и вовсе не работают
2
Ответить
Согласен с правилами
Комментировать