Быстро, быстрее, еще быстрее. Разгоняем Intel Optane

Пожалуй, мало кто будет спорить с тем, что появление накопителей на базе флэшпамяти на замену традиционным жестким дискам является одним из наиболее ярких этапов развития вычислительных систем за последнее время. Кардинальное уменьшение времени случайного доступа и увеличение скорости на последовательных операциях заметно невооруженным взглядом и без специальных тестов. Если взять за точку отсчета Intel X25-M, то за прошедшие десять лет мы были свидетелями революции роста объемов и производительности с одновременным снижением стоимости за мегабайт. Напомним, что тогда эта модель имела объем 80 ГБ,  интерфейс SATA 3 Гбит/с и предлагалась примерно за $600.

Участвующие в гонке производители совершенствовали контроллеры и использовали новые технологии флэшпамяти, так что кроме банального увеличения объемов, ограниченного на массовом рынке скорее покупательской способностью, также обеспечивало и рост скорости. В какой-то момент для последней стало тесно в интерфейсе SATA 6 Гбит/с. После некоторых метаний, определился новый лидер –  NVMe, работающий с прямым подключением к шине PCI Express. Одновременно был стандартизирован и новый формат устройств –  M.2 (NGFF), который позволил заметно сократить физические размеры, что полезно не только для мобильных устройств.

И вот в этом году компания Intel, один из признанных лидеров индустрии, представила SSD накопитель с новым типом памяти – 3D XPoint. Причем речь идет именно о реальном продукте, доступном на массовом рынке, а не лабораторной разработке. Кстати, заявленная стоимость Intel Optane SSD 900P на 480 ГБ составляет все те же $600, как было десять лет назад за Intel X25-M на 80 ГБ. На страницах сайта iXBT.com уже был подробный обзор этого устройства и в нем оно показало себя с наилучшей стороны по производительности. Но конечно надо понимать, что в реальности использование такой модели «из будущего» может быть оправдано финансово только при наличии соответствующих задач или сценариев использования, которые далеки от запросов массового потребителя и скорее характерны для высоконагруженных серверов, виртуализации, баз данных и всего такого «серьезного».  Основными особенностями решения, которыми оно существенно отличается от других продуктов, является высокая скорость случайного доступа и стабильная производительность в отсутствие необходимости сборки мусора. В существенные недостатки можно записать высокую стоимость за мегабайт, а  относительно невысокая максимальная емкость и формально большое энергопотребление скорее являются особенностями решения.

В этой статье я попробую пару трюков для повышения производительности накопителя SSD, причем делать это будут под Debian. В качестве тестовой платформы выступает система на материнской плате Asus Z170-P с процессором Intel Core i7-6700K и 32 ГБ оперативной памяти. Эта уже немолодая по меркам ИТ-индустрии платформа и сегодня вполне подходит для создания высокопроизводительной рабочей станции, при условии, что вас устраивают ее ограничения по процессору, памяти, наличию слотов и всего такого. ОС Debian 9 во всеми актуальными обновлениями была установлена на отдельный SSD. На плате есть «процессорный» слот PCIe 3.0 x16 и «чипсетный» PCIe 3.0. Тестировался накопитель Intel Optane SSD 900P объемом 280 ГБ. Он выполнен в виде платы PCIe, в комплекте идет сменная планка для низкопрофильных корпусов. Интерфейс устройства – PCIe 3.0 x4. Радиатор на плате не занимает соседних слотов, так что при желании в правильные сервера или рабочие станции можно поставить много таких накопителей.

Для тестирования используется неразмеченный том и утилита fio. Проверяются шаблоны последовательного чтения и записи с блоком 256 КБ и случайные операции с блоком 4 КБ для нескольких вариантов  параметра iodepth. В результатах оцениваем скорость в мегабайтах в секунду для последовательных операций, в IOPS для случайных операций, а также средние задержки (clat).

Первая конфигурация (на графиках «chipset») – просто устанавливаем SSD в чипсетный слот PCIe.  Второй вариант – дополнительная оптимизация системы прерываний в Linux. Рассматриваемый накопитель поддерживает восемь виртуальных линий прерываний и в конфигурации по умолчанию все они обслуживаются первым (нулевым) ядром процессора. Установка параметров Affinity позволяет выбрать, какие ядра процессора будут обрабатывать какие прерывания. Осуществляется эта операция через команды формата «echo “2” > /proc/irq/149/smp_affinity», где «2» — маска ядер, а 149 – номер прерывания. В результате можно добиться такого результата (см. «cat /proc/interrupts»):

На графиках эта конфигурация подписана «chipset+irq». Третий вариант – переставляем SSD в слот, который обслуживается процессором, и оставляем распределение прерываний по ядрам («cpu+irq»). Ну и напоследок к последней схеме добавляем фиксацию частоты ядер процессора на максимальном значении базовой частоты 4 ГГц («cpu+irq+4ghz»).

На первой паре графиков приводятся результаты для операций последовательного чтения.

В этом сценарии заметно отстает от других только первый вариант и преимущественно при небольшой нагрузке. При ее увеличении разница сокращается до стабильных 100-120 МБ/с.  Задержки также отличаются только если идет работа в один или два потока. Если их больше – можно считать цифры одинаковыми.

На последовательной записи ситуация иная – первая конфигурация при росте нагрузки ограничивает производительность на уровне 1 500 МБ/с, тогда как остальные способны показать более 2 200 МБ/с. Задержки также при числе потоков 64 и выше оказываются больше почти в полтора раза (хотя в абсолютном значении не превышают 45 мс).

Случайное чтение блоками по 4 КБ все конфигурации выполняют примерно на одной скорости. В IOPS это соответствует значениям около 580 000, а в мегабайтах в секунду – 2 300 МБ/с. Как раз этим Intel Optane 900P и может быть интересен – скорость случайного чтения практически не отличается от скорости последовательного чтения. По задержкам (обратите внимание, что на этом и следующем графике используются нс, против мс для последовательных операций) разницы тоже почти нет, с минимальным опережением выигрывает максимально «разогнанный» вариант.

В случайной записи первый раз в этой статье мы видим три группы – отставание первой конфигурации, идущие рядом вторую и третью и четвертую с небольшим отрывом при глубине очереди до 32. Абсолютные значения IOPS в этом тесте достигают 520 000, а скорость превышает 2 000 МБ/с. Аналогичная расстановка сил и на графике задержек.

По результатам проведенных тестов можно сделать несколько выводов. Во-первых, накопитель можно эффективно использовать и в достаточно старых системах. Во-вторых, он неплохо чувствует себя и на чипсетной шине PCIe. Так что при необходимости (например, если нужно поставить сразу несколько штук или в рабочей станции мало слотов), их можно использовать и в такой конфигурации. Единственное, на что стоит обратить внимание – на настройку распределения прерываний. Во-третьих, особого смысла разгонять процессор для повышения скорости работы диска нет (конечно, если речь идет об обычной работе, а не соревнованиях «на цифры»). Но если число потоков невелико, фиксация высокой частоты ядер имеет заметный эффект.

Напоследок приведем аналогичные цифры на том же оборудовании и программном обеспечении для конфигурации «chipset+irq» NVMe-накопителя Intel 760p объемом 256 ГБ, выполненного в виде платы расширения M.2.

По скорости разница более чем заметна. Впрочем, как и по стоимости – 6 500 руб против 28 000 руб.

 

 

 

+9 0 6540 14
Автор Kirill Kochetkov Рейтинг +4.84 Сила 11.18
Блог HDD, SSD, флешки, прочие носители информации 59 65 RSS

14 комментариев

avaddon
троллейбус из буханки.жпг имхо…
Alex TOPMAN
Цитата: «накопитель поддерживает восемь виртуальных линий прерываний и в конфигурации по умолчанию все они обслуживаются первым (нулевым) ядром процессора».
Автор — красавчик! Только укрепил меня в моём предположении о подобном ограничении. Вот объясните мне, кто-нибудь, зачем для дисковых операций ограничивать обработку потоков 1 (одним!!) ядром ЦПУ? Только не отвечайте идиотскими «это кроме тебя больше никому не нужно». И, ведь, такое же делает даже софт для Рамдрайва (рамдиска). Любой. Я в тестах вместо ожидаемых разумных, ну, хотя бы 70% от теоретической ПСП (у меня это ~100 GB/s по Аиде), я получаю только 10%. Всего 10%, Карл! /фейспалм.жпг/ Ладно, мне повезло и хоть один найденный Рамкеш этим не страдал и вместе с ним я в итоге получил-таки вменяемые цифры (под 50%). Эксперименты с Рамдрайвом я поэтому отложил в сторонку (иначе, как я спокойно людям буду в глаза смотреть и объяснять, почему и зачем Рамкеш стоит сверху на вешать Рамдрайв, ЛОЛ), т.к. Рамкеш почти также эффективен и верхом на nvme диске. Вот такие дела…
А за статью и эксперимент, автору — большой респект! Ещё бы у нас на overclockers.ru это опубликовали (там с недавних пор приплачивают за подобное).
Kirill Kochetkov
На самом деле нельзя говорить о том, что описанная технология полезна всегда и везде. В определенных конфигурациях могут быть непростые особенности ее реализации, что может приводить и к снижению производительности. Вопрос, как всегда, в конкретных сценариях и задачах. Учитывая, что дело в программной настройке, можно всегда проверить разные варианты и выбрать наиболее подходящий.
Alex TOPMAN
Да я и не пытался заявить об исключительной полезности. Мои эксперименты лишь показали, что что-то действительно не так. А вы позволили копнуть эту тему глубже. Я нужных мне программных настроек не увидел (не нашёл). На то и посетовал. И я бы, конечно, вполне спокойнее на всё отреагировал, если бы разница не составляла в разы. На такое не обратить внимание авторам утилит/драйверов или же не просто заметить — это уж, извините. ;)
vovche
Спасибо за статью! Было б интересно узнать примеры задач данной рабочей станции, для которых имеет смысл установка нескольких Optane-накопителей да еще и с тюнингом производительности, но хватает скромного процессора на десктопной MB без ECC RAM?
Kirill Kochetkov
Использованный для тестов компьютер сложно назвать «рабочей станцией» в общепринятом смысле этого термина. И конечно приведенные тесты скорее являются «побочным результатом», но не выбрасывать же цифры. Вдруг кому пригодятся. На самом деле, Optane первоначально планировался для сценария «RAM tool small» (см. пункт 2 в https://www.anandtech.com/show/11953/the-intel-optane-ssd-900p-review/2). Однако по факту данная история потерпела полное фиаско. Так что если хочется более 64 ГБ — просим в совсем другой класс оборудования. Ну или оптимизировать модели, что б влезали в 64 ГБ.
Последний раз редактировалось
vovche
Спасибо за ссылку: и сам Billy Tallis с трудом притянул лишь второй пункт, предоставленный Интеловским PR-отделом, и обсуждение на первой странице там интересное :) Пользователи SideFX Houdini, учитывая стоимость пакета и решаемые в нем задачи, вряд ли клюнут на «быстрый» Optane-своп — скорей возьмут нормальную рабочую станцию с сотнями GB RAM и будут сдавать проекты в срок. Похоже, Optane пройдет не только мимо меня (как на десктопах, так и на серверах), но даже за других пользователей со специфичными задачами (нет таких?) порадоваться не придется. А жаль.
Последний раз редактировалось
Kirill Kochetkov
Да, с рабочими станциями сложно. Как вариант — можно попробовать использовать для сервера виртуализации.
Yurius
Optane вроде как и для кеша неплох, например для полки HDD. Ну и посмотрим, что там Intel пилит за DIMM на Optane.
Kirill Kochetkov
Для кэша полки HDD любой накопитель на флеше полезен. Optane конечно тут должен выступить лучше других благодаря своей скорости. Вот только объема может не хватить (полка 12 дисков по 10 ТБ в RAID6 — это 90 ТБ (с учетом «двоично-десятичности» измерений).
Guest_N
Ну 90ТБ это все-таки уже архивация. Если нужно ворочать всю СУБД на 90ТБ, то там она уже сразу собирается на SSD. Тяжелые рабочие СУБД на 4-5TB на 1-2U в ram-диск запихнуть нереально, а при P4800X — вполне можно размазать по optane получив задержки соизмеримые с оперативкой (именно в контексте LRDDR1.5-3TB которая просядет даже на платине/золоте с 2666 на 2133).
Kirill Kochetkov
Немного не так. Я имел ввиду, что если массив на HDD на много десятков терабайт, то Optane может быть не очень эффективен в роли кэша из-за своей относительно небольшой емкости.
Guest_N
Я к тому, что если массив на много десятков ТБ, и его надо кешировать для достижения больших скоростей, значит он ворочается целиком и емкость кеша должна быть хотя-бы «многодесятков ТБ / 4» т.е. это очень большой объем горячих данных. В противном случае хватит «cachecade» в 1.92TB буфером, даже парой. Они обойдутся всего в 120т.р. Ибо даже если там про монтаж и линейные скорости, один фиг это упрется в HDD. Т.е. сценарий не для оптан. Много данных и быстрый отклик — тогда опять-же проще собрать этот массив сразу ssd, а на HDD бросать снапшоты. Роль оптана это все-таки очень быстро с минимальным откликом. Или кеширование данных баз соизмеримого объема, опять-же когда сами базы и так на ssd, или таскание баз прямо на себе. Иначе говоря в интерпрайз сегменте оптан это не про дружбу с HDD.
Kirill Kochetkov

Ответ Guest_N на комментарий
Иначе говоря в интерпрайз сегменте оптан это не про дружбу с HDD.

В целом да. Слишком большая пропасть между ними по объемам и скорости. Хотя конечно дружба разная бывает. Сценариев/конфигураций/вариантов в любом случае не меньше, чем заказчиков.

Добавить комментарий