Pull to refresh

Comments 37

Память Optane - технология крайне интересная, по многим метрикам. Но, увы, на фоне засилия NAND flash она нишевая и до боли дорогая. Практические применения для неё поэтому ограничиваются совсем уж экзотическими решениями, и даже сам Intel мечется, не зная куда бы её применить.

Отчего мы и имеем этот забавный RAM-SSD гибрид. Intel надеется что если с NAND у памяти Optane конкурировать не вышло, то, может, с DDR чего выйдет.

По тексту: "ДДР" и "ПМем" - это какие-то невнятные транслитерации английских аббривеатур, и в тексте они выглядят ну очень уж странно.

Спрашивал 10 лет назад у главного разработчика:


Что вы думаете о мемристорах, их будущей связи с вашей ОС и будущего изменения индустрии? По последним новостям, память на основе мемристоров должна появится в продаже уже через год-два.

Его ответ:


Существенного изменения ситуации не жду.

Неплохо, в частности для систем, чувствительных к электропитанию

Не раскрыт вопрос собственно энергонезависимости памяти — вероятно, есть режим её работы, с сохранением данных при перезагрузке или отключении питания. Требуется ли модификация приложений для этого, что именно можно сохранить, и насколько это актуально именно для серверов с аптаймом в годы?
Возможно, позднее будут выпущены пользовательские продукты, позволяющие использовать энергонезависимую память для ускоренной загрузки ОС, ведь восстановление после выключения предполагает в основном чтение из памяти, т.е. оптимальный для PMem режим.

Это не было целью, я прежде всего хотел пояснить аспекты производительности. Впрочем, из описания мод сделать выводы можно. Варианты с файловыми системами (AppDirect) естественно обеспечивают энергонезависимость. 2LM и AppDirect Volatile - очевидно не рассчитаны на нее.

Требуется ли модификации программ работающих с персистентной памятью?

Существует два режима работы:


  1. Режим совместимости с dram
  2. Персистентный режим

Особенность 1 режима в том что вы получаете больший объем dram взамен на скорость доступа, без какой либо персистентности.


Второй режим (в отличие от первого) — персистентный, и работает только при использовании mmap файлов. Этот режим требует модификации кода, и для более менее удобной работы с ним появился pmdk, как удобная обёртка над mmap. Эта обёртка написана на Си и предоставляет низкоуровневый апи, поверх него существует другая обёртка libpmemobj-cpp, которой уже и пользуются большинство разработчиков.


На текущий момент существует как минимум один key-value стор для хранения локальных данных, который способен использовать преимущества персистентной памяти, но я с этой бд не работал (pmemkv называется).


В целом приложения адаптированный под персистентную память действительно могут быстрее стартовать, а в случае адаптированной бд все становится ещё интереснее.

Cуществует уже немало key-value store и других кэшей и БД, нативно поддерживающих PMem. Например Oracle, SAP, Redis, Aerospike, Kx. А если просто в режиме 2LM или Storage over AppDirect, то это практически любое приложение типа Big Data зашуршит в полную силу.

Время перезапуска БД - это один из козырей PMem.

Интересно, а внутри оно кто? NOR flash?

Никак нет, это 3DXPoint, совместная разработка Интела и Микрона, основана не на транзисторах, а на резисторах. Как говорится, на новых физических принципах... это было реальное открытие.

А как у неё с надёжностью, наработкой на отказ и другими подобными характеристиками?

Сравнимо с DDR, рассчитана на многолетнюю работу в сервере.

когда впервые услышал о "ПМем" первые мысли были "о прикольно, можно swap убрать с диска"

понятное дело что почитав побольше сразу становится боле очевидным другие более адекватные способы применения. но та мысль не отпускает до сих пор (особенно учитывая что я большой фанат гибернации и имею 64Gb ram (и 64Gb swap для неё соответственно) на десктопе).
хотя подозреваю что цена вопроса делает эту идею максимально дебильной

Вот-вот!!! Я все удивляюсь, почему производители ноутбуков не ухватились за это? Положить SWAP в PMEM, и иметь настоящую гибернацию (спящий режим) с мгновенным просыпанием. А заявлять этот объём как "расширенная память" (как в смартфонах сейчас пытаются, но с обычным flash).

Особенно бы это зашло в новых макбуках на M1. Настоящей-то ddr в них не много, и не расширяется. Но если б напаяли на материнку 128GB оптана, это была бы бомба даже с 8GB обычной памяти.

Ноутбукам достаточно режима S3, когда отключается всё, кроме рефреша ОЗУ и опционально — напряжения на ЮСБ-портах (позволяет заряжать телефон вдали от розетки, не пробуждая компьютер). Потребление не очень большое, просыпание — быстрей, чем откинешь экран в рабочее положение. S4 по факту используется очень редко, поэтому потребитель скорее согласится подождать 5...10 секунд, чем будет переплачивать сотни долларов за эту память и чипсет, который её поддерживает.

М1 — вещь в себе и там объём ОЗУ ограничен скорее маркетингом, а не физикой.

В Linux kernel такие разработки уже идут.

в Linux Kernel чего только нет. проблема в том что при неадекватной (по отношению к пользе) стоимости ПМем так и останется игрушкой для песочницы под названием "крупный ЦОД" и не скоро (если вообще когда нибудь) доберётся до десктопов/неттопов/ноутбуков/воркстейшенов..

Вопрос: а можно ли в Optane, например, в реалтайме дублировать данные из RAM, чтобы при сбое питания в кои-то веки можно было буквально начать с того же места, на котором все остановилось?

Если таки да, и скорости линейной записи (в теории — наиболее оптимального режима) хватит, то это невидимая революция в сфере отказоустойчивости.

P.S. Как я это вижу: у виртуалки есть некий объём объем RAM, ещё столько же зарезервировано физически. Раз в N времени (определяемого скоростью записи в Optane) делается полный слепок ОЗУ на данный момент в зарезервированное пространство (для консистентности) и оттуда записывается в Optane, как только запись завершена – процесс повторяется снова.

Так, в теории, можно добиться того, что даже при серьёзном сбое с питанием можно было бы мгновенно возобновить работу с состояния «секунду назад», просто распаковав этот слепок из Optane обратно в RAM.

40 Гб будет бэкапиться секунду. Все это время нельзя использовать основную RAM. Я вижу одну возможность - сделать 2х канальную память и бэкапить в фоне паралельно с DRAM рефреш. Это будет выглядеть как DRAM + Optane + контроллер на каждом DIMM модуле. И процессоры нужно будет обвешать кэшем.

Увидев этого Франкенштейна я подумал, а не дешевле ли подключить батарейное питание к обычной DRAM?

Вопрос: а можно ли в Optane, например, в реалтайме дублировать данные из RAM, чтобы при сбое питания в кои-то веки можно было буквально начать с того же места, на котором все остановилось?

А бэкапа хватит? Ведь наверное текущий контекст в процессоре тоже важен. Регистры и то что в них лежат, выполняемые инструкции, вот это все.

Вот только узнал, зачем все-таки нужна такая память, а Intel кажется уже ее перестали развивать, если память не изменяет =)

Да вроде наоборот, Интел продал свое подразделение связанное с SSD и оставил только оптану.

Ох, значит я слушал через одно место.

Именно так, продано 3DNAND, но не Оптан

Придумал классное применение, скорее всего уже велосипед.

Можно в заменить оперативку внутри ССД на ПМ. Получим нормальный энергонезависимый ССД. Объем "кэша" увеличится и станет независимым, а так как его скорость выше пары линий PCI, то получим дешёвый NAND диск, который будет работать со скоростью интерфейса. Даже алгоритм работы с "кэшем" упростится ибо теперь он энергонезависим. Запись конечно у ПМ не бесплатная, потому нужно посчитать так чтобы умирал так же как и NAND

А не проще ли засунуть в SSD батарейку (да хотя бы ту же CR2032, ради унификации) для «поддержания штанов» RAM-кэша при незапланированном отключении?

Точно не проще, у нее ток отдачи 3мА от силы, хватит в лучшем случае на поддержание оперативки, но никак не на запись содержимого в NAND. Это конкретно про вашу реализацию, литиевого аккумулятора хватит на такие задачи.

Сама идея интересная из-за того что самой памяти больше, считай в 8 раз. Заменил одни камни на другие и у тебя почтибесеонечный кэш, именно в этом месте скорость записи возрастает. Так кэш ещё и энергонезависим!

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

А не проще ли засунуть в SSD батарейку (да хотя бы ту же CR2032, ради унификации) для «поддержания штанов» RAM-кэша при незапланированном отключении?

на серверных ssd так и есть, только не батарейка, а ионисторы.
ключевое слово для гугла — plp

Объем "кэша" увеличится и станет независимым, а так как его скорость выше пары линий PCI

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


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


гибрид, кстати, intel выпутил, называется h10/h20, но…
The Optane Memory H10 does not introduce any new ASICs or any hardware to make the Optane and QLC portions of the drive appear as a single device. The caching is managed entirely in software, and the host system accesses the Optane and QLC sides of the H10 independently. Each half of the drive has two PCIe lanes dedicated to it.
https://www.anandtech.com/show/14249/the-intel-optane-memory-h10-review-two-ssds-in-one
https://www.anandtech.com/show/16681/optane-memory-h20-enmotus-fuzedrive-ssd-review


получилось достаточно уныло.


P. S. насколько я знаю, dram на ssd используется в основном для кэширования не данных, а таблицы трансляции.

Параллелизм будет. Контроллер памяти честно, полностью паралельно подключить к ПМ. Это в сторону SATA или PCI у него узкое горлышко.

Ну и повторюсь, что, конечно же, если бы это было было хорошей идеей, то уже точно сделано

Штука, конечно, интересная, но цена...

64GB ECC DDR4 стоит меньше 350$, а Optane 128G дешевле 700$ не найти - ну никак не получается "огромный объем за гораздо меньшие деньги, чем ДДР"

корректно сравнивать 128ГБ Optane с 128ГБ DDR. Я слышал, что в этом случае для оптовых закупок цена ниже более чем вдвое, возможно существенно более. Думаю, что если просто погуглить, то можно найти только неадекватные цены в связи с низкой распространенностью Optane на розничном рынке.

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

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

Sign up to leave a comment.

Articles

Change theme settings