Какие из следующих утверждений об энергонезависимой памяти dimm optane dc верны
В июле 2015 года компании Intel и Micron анонсировали принципиально новую технологию энергонезависимой памяти – 3D XPoint (читается «3D crosspoint»).
Память 3D XPoint на один-два порядка быстрее традиционной энергонезависимой памяти NAND – основы большинства современных твердотельных накопителей. Кроме того, ее ресурс перезаписи тоже на два порядка выше, чем у обычной флэш-памяти. 3D XPoint допускает побайтовое чтение и запись в отличие от NAND, которая позволяет читать и записывать блоки данных размером не менее 4KB.
С другой стороны, 3D XPoint примерно в пять раз медленнее энергозависимой памяти DRAM, используемой в качестве оперативной памяти в компьютерах и серверах.
Основанные на технологии 3D XPoint устройства компании Intel выпускаются под торговой маркой Optane.
В настоящее время в серверах, в том числе и в наших серверах Team, применяются твердотельные NVMe-накопители Intel Optane DC P4800X с памятью 3D XPoint и интерфейсом PCIe 3.0 x4, выполненные либо в виде плат расширения, устанавливаемых в слоты PCIe, либо в виде «обычных» накопителей 2,5”, устанавливаемых в дисковую корзину и подключаемых к специальным разъемам для накопителей NVMe.
Хотя 3D XPoint существенно быстрее NAND, дополнительные задержки, вносимые интерфейсом PCIe, не позволяют накопителям Optane NVMe полностью раскрыть свой скоростной потенциал, поэтому SSD NVMe на базе 3D XPoint и SSD NVMe на базе NAND демонстрируют схожую производительность, значительно отличаясь друг от друга только по ресурсу записи.
Однако недавно компания Intel представила новую реинкарнацию памяти 3D XPoint, в которой сочетание ее уникальных возможностей – быстродействия, выносливости, побайтовой адресации и энергонезависимости – способно проявить себя в полной мере.
Это случилось в апреле этого года, когда компания Intel объявила о начале продаж модулей памяти, основанных на технологии 3D XPoint и предназначенных для установки в разъемы оперативной памяти на материнской плате. Такие модули получили название Intel Optane Data Center Persistent Memory Module (DCPMM).
Из следующего графика понятно, почему с появлением нового интерфейса для 3D XPoint можно ожидать качественного скачка производительности устройств на ее основе.
Диаграмма 1. Величина задержки различных устройств хранения данных для единичного запроса на чтение блока размером 4KB (случайный доступ) в наносекундах (логарифмическая шкала)
Новый интерфейс избавлен от заметных временных потерь - из графика видно, что величина задержки, вносимая интерфейсом PCIe и ПО (операционной и файловой системами и драйверами), для накопителей Optane (PCIe) составляет около 10 микросекунд в сравнении с Optane (DIMM).
Кроме того, новый интерфейс обладает существенно большей пропускной способностью. Если накопитель NVMe, подключаемый обычно по четырем линиям PCIe, имеет пропускную способность интерфейса 4GB/s, модуль Persistent Memory «шириной» 8 байт, устанавливаемый в стандартный слот DIMM и работающий на эффективной частоте 2’667 MHz/s, имеет полосу пропускания 21GB/s. С учетом того, что все шесть каналов интегрированных в процессор двух контроллеров оперативной памяти работают параллельно, суммарная пропускная способность интерфейса для шести модулей Optane составляет 126 GB/s.
Далее я буду использовать следующие сокращения:
- DCPM – Intel Optane Data Center Persistent Memory
- DCPMM - Intel Optane Data Center Persistent Memory Module
Intel предлагает DCPM модули трех номиналов: 128GB, 256GB и 512GB. Ресурс записи очень большой: для модуля 128GB он составляет 1250 ежедневных полных перезаписей (DWPD) на протяжении 5 лет, для модуля 256GB – 750 DWPD, для модуля 512GB – 320 DWPD. Чтобы исчерпать ресурс модуля 128GB, который составляет 290 Петабайт (128GB x 1250 x 365 x 5), за гарантированные производителем 5 лет, необходимо на протяжении этого срока непрерывно записывать на него данные со скоростью 1,85GB в секунду. Интересно, что Intel заявляет для этого модуля именно такую максимально возможную скорость записи при размере блока 256 байт.
Мы протестировали модули DCPM на платформах Intel и Supermicro. В этой статье я расскажу о системных требованиях со стороны Intel Persistent Memory, сценариях использования, задачах, для которых применение памяти Optane обещает быть эффективным, а также поделюсь результатами тестирования.
Memory Mode
В Memory Mode модули Persistent Memory используются в качестве оперативной памяти, а стандартные модули DIMM – в качестве кэш-памяти верхнего уровня (L4). Операционная система в этом режиме «видит» оперативную память, включающую только модули Persistent Memory.
Использование Memory Mode может оказаться выгодным для приложений, требующих значительного объема оперативной памяти, по следующим причинам.
Во-первых, Persistent Memory дешевле «обычной» памяти DRAM. Например, на момент написания этой статьи модуль DCPM 128GB более чем в три раза дешевле модуля DRAM 128GB и в два раза дешевле пары модулей DRAM 64GB.
Во-вторых, при использовании Persistent Memory можно получить больший объем оперативной памяти в сервере. Например, для двухпроцессорного сервера с использованием DRAM можно установить только 3072GB оперативной памяти (24 модуля по 128GB, модули большего объема пока недоступны), а с использованием Intel Persistent Memory объем ОЗУ можно довести до 6144GB, установив 12 модулей DCPM 512GB. Правда, в этом случае потребуется установка еще 12 модулей DRAM по 32GB или 64GB для использования в качестве кэш-памяти L4 (этот объем памяти не будет виден операционной системе).
Примеры приложений, которые могут выиграть от увеличения объема оперативной памяти: кэш-память больших SQL баз данных, хранилище индексов поисковых алгоритмов, платформы виртуальных машин, высокопроизводительные вычисления, трейдинг. В общем, любые приложения, требовательные к объему оперативной памяти.
Хотя Persistent Memory в несколько раз медленнее памяти DRAM по времени отклика (задержке), производительность подсистемы памяти на базе DCPM + DRAM (L4) лишь незначительно ниже «обычной» DRAM. Почему? Во-первых, пропускная способность у DCPM сопоставима с DRAM (для шести модулей она составляет при чтении около 50GB/s и 20GB/s при записи, для DRAM порядка 110/100 GB/s соответственно). Во-вторых, разница в скорости нивелируется наличием большого объема кэш-памяти, в роли которой выступает DRAM. Дело в том, что данные, находящиеся в оперативной памяти, различаются по степени «востребованности» приложениями. «Горячие» данные, к которым приложения обращаются чаще, будут присутствовать в кэш-памяти и их обработка будет выполняться со скоростью DRAM. Обращения к «холодным» данным из Persistent Memory выполняются реже и меньше влияют на общую производительность.
При выборе конфигурации сервера с использованием модулей Persistent Memory для работы в Memory Mode необходимо придерживаться следующих правил:
- все модули DCPM должны быть одинаковыми
- все модули DIMM должны быть одинаковыми
- модули DIMM Single Rank x8 использовать нельзя
- число модулей DIMM должно быть равно или больше числа модулей DCPM
- минимальное количество модулей DCPM – 1 модуль на CPU, в этом случае используется только первый контроллер памяти IMC0 процессора, слоты второго контроллера IMC1 остаются пустыми
- максимальное количество модулей DCPM – 6 модулей на CPU или 12 модулей на двухпроцессорный сервер
- если используются оба контроллера памяти процессора, расположение модулей памяти на обоих контроллерах должно быть симметричным
- если в сервере установлено два процессора, расположение модулей памяти на обоих процессорах должно быть одинаковым
- в один канал контроллера памяти можно установить не более одного модуля DCPM
- если модуль DCPM устанавливается в канал вместе с модулем DIMM, он должен располагаться в ближнем к процессору слоте (слот 1)
- если модуль DCPM устанавливается в канал без модуля DIMM, он должен располагаться в дальнем от процессора слоте (слот 0)
- объем модулей DIMM во всех каналах, где они установлены, должен быть одинаковым
- соотношение объемов памяти DCPM и DIMM в сервере должно находиться в диапазоне от 16:1 до 4:1 (чем меньше, тем быстрее, но дороже).
Примеры корректной установки модулей DCPM и DIMM для одного процессора (на втором – аналогично) для Memory Mode:
На момент тестирования Persistent Memory в Memory Mode мы располагали только двумя модулями DCPM емкостью 128GB, поэтому сравнили две однопроцессорные конфигурации с точки зрения быстродействия подсистемы памяти:
1) 4 модуля DIMM 16GB, объем ОЗУ 64GB, рабочая частота 2666 MHz
2) 2 модуля DCPM 128GB, 4 модуля DIMM 16GB, объем ОЗУ 256GB, рабочая частота 2666 MHz, соотношение объемов DCPMM и DIMM 4:1
Результаты тестирования приведены на графике:
Диаграмма 2. Пропускная способность подсистемы памяти на операциях случайного чтения и записи
для DIMM и DCPM
При задействовании 6 каналов контроллера для модулей DCPM и том же соотношении объемов DCPMM и DIMM 4:1 (6 модулей DCPM 128GB и 6 модулей DIMM 32GB) разница в производительности DCPM и DIMM будет еще меньше.
В Memory Mode модули памяти DCPM не сохраняют данные при перезагрузке или потере питания. Это сделано специально, поскольку информация, находящаяся в области кэш-памяти (в обычных модулях DIMM), в этих случаях теряется по определению и целостность данных не может быть обеспечена.
App Direct Mode
В отличие от Memory Mode в режиме App Direct Persistent Memory выступает как энергонезависимое устройство хранения прямого доступа, подключенное непосредственно к шине памяти.
Требования к расположению модулей DIMM и DCPM такие же, как и в случае Memory Mode, за одним исключением: когда в сервере присутствует только один модуль Persistent Memory, модули DIMM должны устанавливаться в оба контроллера памяти процессора, то есть их должно быть как минимум две штуки.
В App Direct Mode приложения могут записывать и читать данные напрямую из области Persistent Memory подобно тому, как они это делают, используя оперативную память (с тем важным отличием, что эта память энергонезависимая). Поддерживаются побайтная адресация, режимы DMA и RDMA (прямой доступ к памяти), для операций чтения задействуется кэш-память процессора. DCPM в этом режиме лишь немого уступает в производительности оперативной памяти DDR4: величина задержки составляет примерно 200 наносекунд для операций чтения и 300 наносекунд для записи против 75 наносекунд для оперативной памяти DRAM, а пропускная способность при использовании 6 модулей DCPM на сокет достигает 47 GB/s для чтения и 18 GB/s для записи против примерно 100 GB/s для оперативной памяти.
Режим App Direct целиком раскрывает потенциал Optane Persistent Memory как устройства хранения, исключая задержки, присущие традиционным устройствам хранения и вносимые протоколом PCIe и операционной и файловой системами. App Direct позволяет приложениям взаимодействовать с памятью Persistent Memory на более высоком уровне пропускной способности и со значительно меньшими задержками по сравнению с самыми производительными твердотельными накопителями корпоративного уровня. Режим App Direct также позволяет данным приложений оставаться доступными даже после перезагрузки или перебоев в питании.
Для использования DCPM в режиме App Direct производители приложений должны их модифицировать при помощи набора библиотек Intel Persistent Memory Development Kit (PMDK). Поддержка Persistent Memory уже реализована в таких приложениях, как MS SQL Server 2019, VMware и некоторых других.
Если приложение не модифицировано для поддержки режима App Direct, оно может использовать Persistent Memory как обычный накопитель в режиме Storage over App Direct, который поддерживается на уровне операционной системы (например, такая поддержка есть в Windows Server 2019). В этом случае взаимодействие c Persistent Memory осуществляется не напрямую из приложения, а через драйвер операционной системы, который обеспечивает блочный или файловый (вместе с файловой системой ОС) доступ к области Persistent Memory. Производительность в этом режиме заметно ниже, чем в «чистом» App Direct Mode, поскольку добавляются задержки со стороны ПО.
Характеристики
Модель/характеристика | NMA1XXD128GPS / NMB1XXD128GPS | NMA1XXD256GPS / NMB1XXD256GPS | NMA1XXD512GPS / NMB1XXD512GPS |
Емкость, GiB | 128 | 256 | 512 |
Доступная емкость, GiB | 126.4 GiB | 252.4 GiB | 502.5 GiB |
Выносливость, 100% запись, 15Вт, 256B | 292 PBW 292 PBW | 363 PBW 497 PBW | 300 PBW 410 PBW |
Выносливость, 67R/33W, 15Вт, 256B | НД 224 PBW | НД 297 PBW | НД 242 PBW |
Выносливость, 100% запись, 15Вт, 64B | 91 PBW 73 PBW | 91 PBW 125 PBW | 75 PBW 103 PBW |
Выносливость, 67R/33W, 15Вт, 64B | НД 56 PBW | НД 74 PBW | НД 60 PBW |
Пропускная способность, 100% чтение, 15Вт, 256B | 6.8 GB/s 7.45 GB/s | 6.8 GB/s 8.1 GB/s | 5.3 GB/s 7.45 GB/s |
Пропускная способность, 67R/33W, 15Вт, 256B | НД 4.25 GB/s | НД 5.65 GB/s | НД 4.60 GB/s |
Пропускная способность, 100% запись, 15Вт, 256B | 1.85 GB/s 2.25 GB/s | 2.3 GB/s 3.15 GB/s | 1.89 GB/s 2.60 GB/s |
Пропускная способность, 100% чтение, 15Вт, 64B | 1.7 GB/s 1.86 GB/s | 1.75 GB/s 2.03 GB/s | 1.4 GB/s 1.86 GB/s |
Пропускная способность, 67R/33W, 15Вт, 64B | НД 1.06 GB/s | НД 1.41 GB/s | НД 1.15 GB/s |
Пропускная способность, 100% запись, 15Вт, 64B | 0.45 GB/s 0.56 GB/s | 0.58 GB/s 0.79 GB/s | 0.47 GB/s 0.65 GB/s |
DDR интерфейс | DDR4 2666, 2400, 2133, 1866 MT/s | | |
Максимальный тепловой пакет | 15W | 18W | 18W |
Маркетинговые слайды говорят о 25% прибавке производительности, хотя в закромах самой же Intel можно найти отсылку на сравнительные испытания с цифрой прибавки аж в 39% (источник):
DCPMM первого поколения
DCPMM первого поколения с кодовым именем Apache Pass, представленные во втором квартале 2019 года имеют три емкости: 128 GiB, 256 GiB, 512 GiB. (GiB — Гибибайт — единица количества информации равная 2³⁰ байт = 1 073 741 824 байт. Введена для разрешения путаницы, сложившейся в обозначении объема данных. Гигабайт равен 10 9 байт = 1 000 000 000 байт).
Intel Optane DC Persistent Memory Module 100 серии
DCPMM 100 Series работает с процессорами Intel® Xeon® Scalable второго поколения. Oбщая информация — на сайте Intel.
Обозначение: NMA1XXDcccGPSpp, где «ссс» — емкость модуля в Гигибайтах, pp обозначает вариант групповой упаковки.
Модули закрываются черными металлическими теплораспределительными накладками.
Модули DCPMM совместимы с сокетами DDR4 и могут сосуществовать с обычными модулями DIMM DDR4 DRAM в одной платформе. Модуль устанавливается в стандартные слоты DDR4 DIMM на процессорах Intel® Xeon® Scalable 2-го поколения. Можно устанавливать один модуль Intel® Optane ™ на канал и до шести на один сокет, обеспечивая до 3 ТиБ постоянной памяти Intel® Optane ™. Система с 8 сокетами может иметь до 24 ТиБ энергонезависимой памяти. Модули совместимы с процессорами Intel® Xeon® Gold и Platinum 2-го поколения.
Основные технические характеристики Intel Optane DC Persistent Memory модулей 100 серии приведены ниже в сводной таблице (источник — бриф Intel series 100):
История DCPMM
Первое поколение DCPMM (теперь, с появлением второго поколения, их обозначают «серия 100») запущено во втором квартале 2019.
То ли по соображениям маркетинга, то ли — еще по каким, компания Intel даже после официального запуска туманно говорила о «некоей революционной технологии хранения» в основе накопителей Optane. При этом специалисты, ориентирующиеся в мире доступных на сегодня технологий, моментально определили: PCM, то есть — память на основе материалов с изменяемой фазой. Чтобы еще больше нагнать туману, Intel утверждает, что не использует изменение фазового состояния материала и называет технологию по-своему — 3D XPoint (читается, как «3D crosspoint»), хотя это название больше отражает геометрию формирования ячеек памяти.
Для справки — архивная публикация EETimes от января 2016 о технологии 3D XPoint.
Ячейки памяти 3D XPoint
3D XPoint пришла в Intel в союзе с компанией Micron, продвигающей аналогичную продукцию под собственной маркой — X100 SSD. Союз уже распался, производство на фабрике IMFT в Юте осталось после развода у Micron. Однако, Intel сохраняет в своем портфеле продукты Optane и они развиваются.
Имя Optane объединяет два совершенно разных типа устройств хранения — накопитель в традиционных для SSD форм-факторах (AIC, M.2, U.2, EDSFF,…) с интерфейсом NVMe и модуль энергонезависимой памяти (может быть в энергозависимом режиме в качестве модуля оперативной памяти большой емкости) в форм-факторе DIMM, работающий по шине DRAM. Последний вариант и получил название DCPMM (Data Center Persistent Memory Module). Со временем, Intel также стал называть их короче: Persistent Memory Module (PMem)
В иерархии память-хранилище Persistent Memory располагается сразу за динамической памятью, ниже располагаются Optane DC SSD, следом — обычные NAND SSD.
Storage over App Direct Mode
В этом режиме модуль DCPM «виден» в операционной системе как обычный физический накопитель, к которому возможен блочный или файловый доступ, осуществляемый средствами ОС.
Каждый модуль DCPM может использоваться как отдельный накопитель. Кроме того, модули, подключенные к одному процессору, на уровне BIOS сервера можно объединить в единый накопитель с чередованием подобно RAID0. Модули, подключенные к разным процессорам, объединить можно только программно.
В App Direct модули DCPM можно тестировать как обычные накопители. Сначала мы протестировали 4 модуля в режиме JBOD на операциях случайного чтения и записи, чтобы посмотреть, как масштабируется производительность и какова ее зависимость от количества одновременных запросов. Здесь важно отметить, что для модулей DCPM, в отличие от обычных накопителей, производительность не зависит от глубины очереди приложения, а реагирует только на число одновременных потоков нагрузки.
Диаграмма 3. Скорость случайного чтения (операций в секунду) для модулей DCPM в режиме Storage over App Direct в зависимости от числа потоков нагрузки и количества модулей в системе
Диаграмма 4. Скорость случайной записи (операций в секунду) для модулей DCPM в режиме Storage over App Direct Mode в зависимости от числа потоков нагрузки и количества модулей в системе
Затем мы решили сравнить, получится ли выигрыш в производительности на модулях DCPM по сравнению с обычными NVMe-накопителями в режиме RAID-массива, в качестве которых мы взяли одни из самых быстрых накопителей Intel DC P4610.
Поскольку модули Persistent Memory аппаратно можно объединить только в RAID0, нам пришлось ограничиться только этим типом RAID. Накопители NVMe объединялись в аппаратный RAID0 средствами Intel VMD. Сразу отметим, что VMD с точки зрения масштабирования производительности RAID-массива пока не впечатляет (мягко говоря).
Диаграмма 5. Сравнение массивов RAID0 на базе Intel Persistent Memory (Storage over App Direct Mode) и
NVMe NAND (Intel VMD)
Диаграмма 6. Сравнение массивов RAID0 на базе Intel Persistent Memory (Storage over App Direct Mode) и
NVMe NAND (Intel VMD)
Что можно сказать о потенциале использования Intel Persistent Memory в качестве обычных накопителей? Вот некоторые соображения:
- Очень малое время задержки (3 микросекунды на чтение и запись) по сравнению с NAND (25μs)
- Высокая производительность на случайных операциях чтения и записи (1,7 MIOPS и 530 kIOPS для одиночного накопителя)
- Очень высокая производительность на последовательных операциях чтения (до 20GB/s) для одиночного накопителя (запись до 2GB/s)
- Хорошая масштабируемость производительности при увеличении количества модулей для JBOD и RAID0
- Хорошая масштабируемость при увеличении числа потоков нагрузки
- Не хватает поддержки RAID1, правда, вероятно есть возможность дублирования через зеркалирование памяти, но мы этот режим не тестировали
- Нечувствительность производительности к глубине очереди, что плохо для однопоточных приложений.
Ну и просто интересно было посмотреть, как все это заработает.
Optane DC PM поставляется модулями 3 размеров: 128, 256 и 512 Гб — сильно больше, чем доступные сейчас планки DDR DIMM. Существует два основных способа ее использования и взаимодействия с традиционной памятью.
- Режим памяти — не требует каких-либо модификаций приложений. В этом режиме Optane DC PM используется как основная адресуемая оперативная память, а имеющийся объем традиционных DRAM — как кеш для Optane. Режим памяти позволяет предоставить приложениям значительный объем ОЗУ по существенно более низкой цене, что может быть важным при размещении виртуальных машин, больших баз данных и так далее. Следует иметь в виду, что в этом режиме Optane DC Persistent Memory является энергозависимой, так как данные в ней зашифрованы ключом, теряющемся при перезагрузке.
- Режим прямого доступа — приложения и ПО имеют возможность напрямую обращаться к Optane DC PM, что упрощает цепочку вызовов. Также в этом режиме можно использовать существующие API средств хранения, что позволяет работать с памятью как с SSD и, в частности, с нее грузиться. Система видит Optane DC PM и DRAM как два независимых пула памяти. Ваше преимущество — большое по объему, энергонезависимое, быстрое и надежное хранилище для требовательных к обмену данными приложений и системных нужд.
Теперь приведем ТТХ модулей памяти.
Объем | 128 GiB | 256 GiB | 512 GiB |
Модель | NMA1XXD128GPS | NMA1XXD256GPS | NMA1XXD512GPS |
Гарантия | 5 лет | ||
AFR | ≤ 0.44 | ||
Выносл-ть 100% запись 15W 256B | 292 PBW | 363 PBW | 300 PBW |
Выносл-cть 100% запись 15W 64B | 91 PBW | 91 PBW | 75 PBW |
Скорость 100% чтение 15W 256B | 6.8 GB/s | 6.8 GB/s | 5.3 GB/s |
Скорость 100% запись 15W 256B | 1.85 GB/s | 2.3 GB/s | 1.89 GB/s |
Скорость 100% чтение 15W 64B | 1.7 GB/s | 1.75 GB/s | 1.4 GB/s |
Скорость 100% запись 15W 64B | 0.45 GB/s | 0.58 GB/s | 0.47 GB/s |
Частота DDR | 2666, 2400, 2133, 1866 MT/s | ||
Макс. TDP | 15W | 18W |
Ну и, наконец, о цене. Официальных рекомендованных Intel цен пока не опубликовано, однако ряд торговых партнеров компании уже начали собирать предзаказ, по $850 — 900 за планку 128 Гб и $2 700 — $2 900 за 256 Гб. 512 Гб пока не предлагаются, видимо, они появятся позже других. Таким образом, удельная стоимость начинается от $7 за Гб, что сравнимо со ценой гигабайта серверной памяти RDIMM.
Intel Optane PMem серии 200 — это новое поколение высокопроизводительной памяти в формате DIMM на базе чипов Intel Optane, оптимизированное для работы с процессорами Intel Xeon Scalable Gen3. По сравнению с предыдущим поколением серия 200 обеспечивает до 25% прироста скорости данных при неизменном энергопотреблении — не более 18 Вт TDP для модуля объемом 512 Гб. Под катом — более подробные характеристики линейки, а также шпаргалка-напоминалка о принципах работы PMem.
Как и предшествующее семейство, Intel Optane PMem серии 200 поставляется модулями 3 размеров: 128, 256 и 512 Гб. Существует два основных способа ее использования и взаимодействия с традиционной памятью.
- Режим памяти — не требует каких-либо модификаций приложений. В этом режиме Optane DC PM используется как основная адресуемая оперативная память, а имеющийся объем традиционных DRAM — как кеш для Optane. Режим памяти позволяет предоставить приложениям значительный объем ОЗУ по существенно более низкой цене, что может быть важным при размещении виртуальных машин, больших баз данных и так далее. Следует иметь в виду, что в этом режиме Optane DC Persistent Memory является энергозависимой, так как данные в ней зашифрованы ключом, теряющемся при перезагрузке.
- Режим прямого доступа — приложения и ПО имеют возможность напрямую обращаться к Optane DC PM, что упрощает цепочку вызовов. Также в этом режиме можно использовать существующие API средств хранения, что позволяет работать с памятью как с SSD и, в частности, с нее грузиться. Система видит Optane DC PM и DRAM как два независимых пула памяти. Ваше преимущество — большое по объему, энергонезависимое, быстрое и надежное хранилище для требовательных к обмену данными приложений и системных нужд.
Место PMem среди различных накопителей информации
Как уже говорилось, основными отличиями новой линейки стала более высокая скорость данных и улучшенная наработка на отказ.
Объем | 128 GiB | 256 GiB | 512 GiB |
Модель | NMB1XXD128GPS | NMB1XXD256GPS | NMB1XXD512GPS |
Гарантия | 5 лет | ||
AFR | ≤ 0.44 | ||
Выносл-ть 100% запись 15W 256B | 292 PBW | 497 PBW | 410 PBW |
Выносл-cть 100% запись 15W 64B | 73 PBW | 125 PBW | 103 PBW |
Скорость 100% чтение 15W 256B | 7.45 GB/s | 8.1 GB/s | 7.45 GB/s |
Скорость 100% запись 15W 256B | 2.25 GB/s | 3.15 GB/s | 2.6 GB/s |
Скорость 100% чтение 15W 64B | 1.86 GB/s | 2.03 GB/s | 1.86 GB/s |
Скорость 100% запись 15W 64B | 0.56 GB/s | 0.79 GB/s | 0.65 GB/s |
Частота DDR | 2666 MT/s | ||
Макс. TDP | 15W | 18W |
По традиции Intel, замещающая линейка почти не отличается по стоимости от предыдущей — это означает, что стоимость памяти Intel Optane Persistent Memory 200 составит $7-10 за гигабайт.
Поймал себя на ощущении, что очень хочется поделиться своим опытом работы с интеловской энергонезависимой памятью (Intel Optane memory или Intel PMem = persistent memory). Я буду для краткости называть ее ПМем. Думаю, что несмотря на объем продаж в сотни миллионов долларов, пока мало кто с ней сталкивался и знает ее специфику. Я же по долгу службы занимаюсь ей уже довольно продолжительное время и гонял на ней различные приложения и микро-бенчмарки. А также добивался ее эффективного использования модифицируя под нее клиентские коды.
В принципе литературы по ней навалом, по крайней мере на английском, но практические советы и простое и понятное описание ее поведения найти не просто, если вообще возможно. Я хочу рассказать что от нее можно ожидать, специфику ее режимов работы в тесной привязке к производительности. А также поясню, в каких случаях она работает хорошо, и в каких вряд ли оправдает ожидания. На всякий случай здесь интеловская заглавная маркетинговая страница по этой технологии.
В настоящее время уже выпущено два поколения ПМем (100 серия и 200 серия). Сотая серия работает с процессорами Xeon Scalable 2-го поколения (Cascade Lake), а двухсотая – с 3-м поколением (Ice Lake). Это все серверные платформы. В основе ее та же технология Optane, которая впервые появилась в твердотельных дисках (Intel Optane SSD). Диски, кстати, очень быстрые по сравнению с обычными 3DNAND. Время отклика у них лучше по крайней мере раз в 5, а в реальности – в 10-20 и больше. Это связано с особенностями производительности как функции нагрузки. Оптановские диски выдают на гора практически при любой нагрузке, держа время отклика почти стабильным в районе 8 мксек (даже кажется еще снизили в последнем поколении), и уже при небольшом количестве пишущих на них или читающих с них потоков их пропускная способность подходит к 100%. 3DNAND выглядит заметно послабже. Ему нужны десятки потоков, чтобы что-то отдаленно напоминающее максимальную пропускную способность материализовалось в реальности. При этом время отклика естественно уходит за 100 мксек. Впрочем при чтении большими блоками достаточным количеством потоков и те и другие диски выдадут близкие результаты по пропускной способности. На самом деле она для топовых твердотельных дисков часто ограничена их PCIe соединением (им обычно выделяют две линии). С переходом на PCIe 4 в последнем поколении платформ/процессоров (те что Ice Lake) Интел сразу и диски выпустил с удвоенной пропускной способностью.
Но вернемся к памяти. На вид это те же плашки, что и ДДР.
Рисунок 1. Модуль ПМем
Если очень грубо сравнить производительность ПМем и ДДР, то ПМем медленнее примерно втрое. Это относится как ко времени доступа, так и к пропускной способности. Но есть очень много всевозможных нюансов. При доступе на чтение коэффициент три работает очень неплохо, но при добавлении даже небольшого количества записи картина резко усложняется и не в пользу ПМем. Такому поведению есть причины. Контроллер памяти ПМем (который является частью каждого модуля) оперирует блоками в 256 байт. У него есть крохотный буферок, в который данные изначально поступают (в случае записи). Если например пришло несколько кэш линий в этот буфер, и некоторые из них соседние (допустим писали два потока, каждый последовательно – соседние будут по-любому, но необязательно по порядку), то контроллер их поменяет местами и возможно сумеет укомплектовать 256 байтными блоками, чтобы писать с максимальной эффективностью. Ясно, что если потоков становится много, то шансы резко падают, буферок-то скромнейшего размера.
Еще один любопытный нюанс заключается в том, что у 100-го и 200-го поколений запись масштабируется совершенно по-разному. У сотого она сначала заметно растет от 1 до 4-8 потоков, а потом очень плавно падает. У двухсотого максимум достигается в одном потоке. В абсолютных цифрах это около 23ГБ/сек на запись и 55ГБ/сек на чтение. Это данные для одного сокета, два дадут вдвое больше. В случае совмещения сокетов в один диск с помощью SW RAID двойки уже не получится, а только около 1.5, если не меньше. Как ни странно, такая как бы неважная (отрицательная даже) масштабируемость – это неплохо. Очень много приложений не особо оптимизированных, где пишущих потоков мало, а то и вообще один. И с ПМем они как раз подружатся.
Дефолтная конфигурация memory interleave – interleave по всем Пмем модулям сокета. Соостветственно достигается максимальный параллелизм и производительность. Между сокетами interleave не работает. При желании можно каждый модуль сконфигурировать независимым, но это безумие, так как писать придется параллеьно уже на уровне приложения. Не представляю кому это может пригодиться.
Теперь давайте обсудим варианты конфигураций. На самом высоком уровне их два – 1LM (one level memory) и 2LM (two level memory). Во втором случае только ПМем видна операциононой системе в качестве памяти, ДДР же как бы спрятана на втором уровне и работает как кэш для ПМем (direct cache). ПМем в этом случае не обладает энергонезависимостью, то есть при перезагрузке данные не сохранятся. Смысл обычно в том, чтобы получить больше памяти, чем возможно с ДДР, либо получить столько же, но существенно дешевле.
Рисунок 2. Конфигурация 2LM
Плюс такой конфигурации в том, что приложению вообще не надо ничего знать о памяти. Оно просто будет работать. При этом если данные используются многократно, есть неплохие шансы, что они будут жить в основном в ДДР и производительность приложения может практически не уступать случаю с только ДДР. То есть можно иметь и использовать нереально огромную память и при этом работать с производительностью ДДР. Отличный пример – in-memory базы данных. Как правило они демонстрируют 90-100% производительности в сравнении с аналогичной системой оснащенной только ДДР. Недостатки у этой конфигурации тоже есть. Во-первых, ДДР фактически недоступна для данных. То есть аллоцировать напрямую в ней нельзя никак. Во-вторых, это самая низкопроизводительная мода для ПМем. Ко времени доступа добавляется время доступа в ДДР и пропускная способность в разы ниже (~4-5 раз), чем у 1LM. У приложений вычислительного типа шансов на успех немного.
1LM – мода гораздо более интересная. Тут есть варианты. В смысле производительности самой ПМем они практически аналогичны (максимальная), но имеют принципиальные отличия не хардверного свойства. Все варианты относятся к типу AppDirect. Значение этого термина в том, что как бы приложение напрямую заботится о взаимодействии с ПМем, хотя в реальности это не обязательно.
Рисунок 3. Конфигурация 1LM
Первый вариант – это Storage over AppDirect. Фактически в этой конфигурации мы получаем диск на ПМем с файловой системой. Самый простой случай – это конфигурация обычного блочного диска. То есть доступ поблочный. Мелкий недостаток – время доступа, блок есть блок. Нужна кэш линия – все равно грузи 4К. Но есть и крупные достоинства. Во-первых, для приложений которым требуется ускорение ввода-вывода не потребуется никаких модификаций. Просто переход на ПМем диск. Во-вторых, в данном случае операционная система сама автоматически кэширует страницы с диска в память. Как только единица данных со страницы прочитана, операционная система грузит всю страницу в ДДР. То есть следующие данные с этой страницы пойдут из ДДР. Для последовательного доступа (а такого очень много) это работает отлично. На мой взгляд, эта конфигурация – самая универсальная и сбалансированная. Побеждает любые самые быстрые системы хранения данных с большим запасом (обычно 2-7 раз) на практически любых тестах на чтение.
Рисунок 4. Конфигурация 1LM Storage over AppDirect
Второй вариант – та же Storage over AppDirect, но смонтированная в DAX (direct access) моде. Эта мода требует файловую систему, умеющую работать с ПМем, конкретно дающую доступ по кэш линиям. С этим проблем давно нет, любая современная операционка это поддерживает. В смысле производительности разница по сравнению с просто Storage over AppDirect существенная. Во-первых, гранулярность доступа в одну кэш линию сокращает время доступа в разы. То есть случайный доступ будет просто летать по сравнению с любыми дисками и системами хранения данных. Как вам ускорение в 100 раз например? Вполне реальная цифра. Недостаток этой конфигурации в том, что операционная система больше не вовлечена и не кэширует страницы в ДДР. То есть все, что было аллоциовано в ПМем будет ходить оттуда напрямую в кэш процессора. В этой конфигурации ПМем дико рвет любые самые быстрые системы хранения данных на случайном доступе, но в случае последовательного доступа с переиспользованием данных выиграет не всегда. Аналогично предыдущему случаю нужды модифицировать приложение нет при условии, что задача – ускорить работу ввода-вывода. Это если в основном чтение; если же много записи, то для производительности модификации понадобятся.
И наконец третий вариант – AppDirect Volatile. В данном случае ПМем используется как волатильная память. Производительность очень близка к DAX и даже чуть лучше, потому что больше нет файловой системы. Здесь уже речи о работе с файлами нет, ПМем видна именно как память. Задача разработчика – грамотно аллоцировать данные (и писать правильными инструкциями). Маленькие и динамичные данные идут в ДДР, а большие и более статичные – в ПМем. Если по ходу работы приложения появляется нужда переместить данные из одного типа памяти в другой – это должно будет сделать приложение (то есть позаботиться должен разработчик кода). ПМем видна как дополнительная NUMA-node, так что аллокатор написать не проблема.
Еще один интересный факт – можно сконфигурировать комбинацию таких вариантов, например частично 1LM и частично 2LM. Или создать две файловые системы на ПМем, одну обычную, а другую с прямым доступом. Или и то и другое одновременно. Одним словом, простор для творчества есть.
Что еще надо знать о ПМем? Если погуглить Intel PMem, то сразу всплывет PMDK. Это набор библиотек, позволяющих эффективно работать с ПМем на разных уровнях. Главная идея PMDK – помочь разработчику грамотно (транзакционно) работать с persistence. То есть с помощью ее библиотек обеспечить consistency данных (либо транзакция полностью сохранена в постоянной памяти, либо совсем не сохранена, но не частично). Это можно делать от отдельной переменной до транзакций высокой сложности. На самом деле эти механизмы довольно похожи на синхронизацию потоков и без них потребовалась бы очень кропотливая работа и затратная отладка. Если почитать документацию PMDK, то может сложиться впечатление, что без нее – никуда, но это не так. Даже если приложение работает не с файлами, а с памятью, использовать варианты типа Storage over AppDirect (то есть с персистентностью) совсем не сложно. Для этого достаточно открыть файл, сделать ему memory map и размещать все данные, которые идут в ПМем в этом файле. При этом разработчик сам выбирает какими инструкциями писать в ПМем и обеспечивает consistency данных по тем же в общем принципам как это делается в многопоточных приложениях. PMDK делает то же самое.
Как я уже сказал, чтение работает гораздо производительнее и стабильнее, чем запись. Запись же более капризна, требует правильных инструкций и имеет умеренно негативное масштабирование. Это обстоятельство часто приводит к ситуации «неоправдавшихся надежд» у клиентов, впервые попробовавших ПМем не трогая приложение. Проблема в том, что использование стандартного ввода-вывода операционки отнюдь не оптимизировано под ПМем и часто производительность получается аналогичной твердотельному диску. Из моей практики типичное ускорение при переходе на Пмем (если брать только ввод-вывод) составляет от 3.5 до 6 раз в ситуациях интенсивной записи. Это в сравнении с одним ССД и при использовании правильных инструкций. У нас есть несколько инструментов и методов точного тестирования без изменения приложения, но это отдельная тема.
Любопытной проблемой является определение данных для аллокации в ДДР или ПМем. Методы понятны и характеристики данных можно померять например с помощью VTune Performance Analyzer. Но опять же из моей практики вариантов приложений вычислительного типа, которые в таком режиме будут неплохо работать крайне мало. Базы данных и прочие приложения по обработке больших данных практически единственное направление, которое работает. В большинстве приложений вычислительного типа значительную часть данных надо и читать и писать, а запись приводит к такой деградации производительности ПМем, что ПМем становится невыгодной.
В общем, если совсем кратко, то так. Если речь идет о замещении любых самых лучших диковых систем хранения данных и главный фактор - производительность, то Пмем – это находка. Огромный объем за гораздо меньшие деньги, чем ДДР, хорошая производительность. В случае когда требуется в основном чтение данных, и делать часто ничего не требуется. Ну а если много записи, то поработать придется, и результат вероятно будет менее звездный. Тут придется оценивать цены к производительности. Если же приложение вычислительного типа, то вариантов применения ПМем пока немного. Скорее всего должны быть большие объемы статических данных, которые требуется часто загружать для расчетов.
В июне 2020 компания Intel представила второе поколение энергонезависимой памяти Intel® Optane в формате модулей памяти (DCPMM).
Модуль DCPMM Intel 200 серии (Источник: Intel Corporation)
Что осталось за кадром
Простота ячейки памяти 3D XPoint на схеме обманчива. В реальности ее формирование связано со сложным многоступенчатым техпроцессом, а увеличение количества слоев (Deck, «досок» в терминологии Intel) влечет за собой использование специфического оборудования. В результате — многослойность 3D XPoint продвигается вперед существенно медленнее, чем в области NAND. Intel уже заговорил о новом, 4-слойном «пироге» на Architecture Day 2020 в основе Optain SSD второго поколения с кодовым именем Alder Stream (источник: Anandtech по материалам Architecture Day 2020):
Ранее эксперты полагали, что второе поколение 3D XPoint придет не ранее, чем с третьим поколением Optain накопителей. Похоже, промахнулись с прогнозами, но частично. Судя по всему, в SSD технология придет быстрее, чем в DCPMM.
Еще одна новость — слайд с презентации Intel (источник) существенно расширяет горизонт Barlow Pass, но, видимо, еще в более далекой перспективе:
На слайде показаны два варианта Barlow Pass. Один для платформы Whitley и один для платформы Cedar Island.
4-сокетная платформа Cedar Island поддерживает скорость до 6 модулей на сокет на частоте до 2933 МТ / с.
2-сокетная Whitley за счет 8 каналов памяти будет поддерживать до 4 ТБ на сокет (8 модулей) на частоте 3200 МТ / с. является растянутой целью, согласно мелкому шрифту). Whitley будет поддерживать до 4 ТБ на сокет и иметь четыре двухканальных IMC.
Правила установки DCPMM в систему и режимы их работы описаны в Intel Optane DC. Руководство по установке и использованию в серверах.
DCPMM второго поколения
О втором поколении Optane DCPMM Intel заговорила в сентябре 2019 (конференция в Южной Корее).
Модуль Intel Intel Optane persistent memory 200 series
Intel® Optane™ Persistent Memory 200 Series (кодовое название Barlow Pass) оптимизирован для работы с процессорами Intel® Xeon® Scalable 3-го поколения (Cooper Lake). Общая информация — на сайте Intel
Продукт еще не дошел до производства, так что многое может поменяться даже относительно опубликованной информации от производителя. Все зависит от того — что из планов удалось воплотить «в железе» к моменту официального старта производства. Все нижеизложенное — предварительная информация.
Обозначение: NMB1XXDcccGPSpp, где «ссс» — емкость модуля в Гигибайтах, pp обозначает вариант групповой упаковки.
Модули закрываются голубыми металлическими теплораспределительными накладками («для лучшей идентификации в центре обработки данных»).
Основные технические характеристики Intel Optane DC Persistent Memory модулей 100 и 200 серии приведены в сводной таблице ниже (источник — бриф Intel series 200)
Для 200 серии добавились показатели выносливости и пропускной способности для смешанных нагрузок
Системные требования и режимы работы Intel DC Persistent Memory
Модули памяти Intel Persistent Memory можно устанавливать в серверы на базе процессоров Intel Xeon Scalable 2-го поколения. Эта память поддерживается следующими моделями процессоров:
- Intel Xeon Platinum 82XX (все модели)
- Intel Xeon Gold 62XX (все модели)
- Intel Xeon Gold 52XX (все модели)
- Intel Xeon Silver 4215
Intel Persistent Memory должна всегда использоваться вместе с обычной памятью DRAM. Следует учитывать, что суммарный объем DRAM и DCPM, подключенных к одному процессору, не должен превышать максимального объема памяти, разрешенного для данной модели процессора:
- 4,5 TB - для процессоров с индексом «L»
- 2,0 TB - для процессоров с индексом «M»
- 1,0 TB - для всех остальных процессоров
Intel Persistent Memory может работать в трех режимах: Memory Mode, App Direct Mode и Mixed Mode, который является комбинацией первых двух. Режим работы памяти выбирается в BIOS сервера.
Читайте также: