Commander Хэлл (cxell) wrote,
Commander Хэлл
cxell

Categories:

Оптаня

Моё знакомство с Intel Optane P4800X на сервере от Selectel.

Жил я да был, SETI@Home на каждом утюге запускал, да присматривал, куда бы ещё вычисления распределить. Не корысти ради, а токмо поиска сигналов инопланетных для. Прознала как-то раз контекстная реклама о моих экспериментах, и давай мне хостинги да облака предлагать. А мне того и надо: я и без интернетов в облаках летаю, а в интернетах и подавно. Понарегистрировался везде, да и развёл вычисления распределённые. Как повиснет чего - на сайт хостера захожу, к облакам взлетаю да инстансы перезагружаю. А контекстная реклама не зевает.

И вот подсунула мне она как-то раз рекламку Selectel, где сервер бесплатный предлагают. Ну, думаю, надо мелкий шрифт под звёздочкой искать. Мол, дадим мы тебе бесплатно что-то, но токмо опосля оплаты в два раза большей. Такие уж времена настали - обычный бонус и тот халявой прикинуться норовит. Но не нашёл ничего. И написал. Долго ли, коротко, ответ пришёл: "дадим мы тебе, недобрый молодец, сервер наш на три дня, а ты за то о нём сказочку расскажешь".

Сервер же дать мне решили не простой, а с Оптаней, новомодной памятью интеловской. Не знаю, за скольких Оптаня ест, но работает она за двоих: за диск (по умолчанию) и за память (если очень надо). Технология в ней новая, отчего у меня сразу ручонки кривые к нечистому животному мышь потянулись, а глазёнки мутные теорию с практикой читать принялись.

Тут и сказке конец. Начинаем эксперименты. Перво-наперво оказалось, что Оптане шапка красная нужна для работы в режиме памяти. Но изо всех дистрибутивов, основанных на Red Hat, без бубна присоединялся к BOINC-проектам только Fedora Core 26, а на сервер мог быть установлен только с 4 по 21-й. Может, и на 21-м бы что-то пошло, но я попросил что-нибудь более пролетарское, - Debian или Ubuntu. Так что Intel Optane был сконфигурирован в виде диска, зато сам сервер мне дали на целую неделю.



сервер


Так как я вообще до этого не имел дела с SSD, то поначалу я даже не мог найти нужное устройство и подумал,что его просто забыли воткнуть. Ну вот не было у меня SSD до этого на живых машинах, а gparted его почему-то не видит. Пришлось задать идиотский вопрос Рауфу Гадирову, с которым у меня с самого начала идёт переписка про сервер. Все, кто со мной работал, знают, как я умею задавать идиотские вопросы. Оказалось, что SSD называются nvme0n1. Немного погодя я нашёл мануал по SSD, рассказывающий всё о том, как их находить, узнавать параметры и конфигурировать. Мануал заточен под сервера lenovo, но в моём случае прекрасно подошёл.

Для тестирования я использовал утилиту fio, о которой много доброго и недоброго говорили на хабре. Перед тем, как запускать всё на большой машине, - попробовал на виртуалке. Оказалось, что тест идёт достаточно долго. На Virtual Box-е (Ubuntu 17.04) 32-гиговый VDMK-диск, лежащий на обыкновенном физическом HDD, тестировался на чтение около 10 часов и при этом практически полностью заблокировал работу с диском-носителем. Так что когда я запустил тот же тест на Optane и увидел, что он закончен, подумал, что он отвалился из-за ошибки. Но он не отвалился, а закончился. "А ведь реально лучше получается. Причём не на порядок, а качественно," - подумал я. Тест на чтение, который на виртуалке занял около двенадцати часов, и при этом практически блокировал работу с диском на хосте, с теми же параметрами пролетел на Intel Optane где-то за десять минут.

Естественно, мои тесты далеки от совершенства, и если вы ищете какое-то серьёзное исследование, лучше обратитесь вот сюда. Там железяку разобрали по косточкам и качественно оценили каждый параметр.

Для начала - потыкаем палочкой

sudo hdparm -tT --direct

Для Intel Optane
/dev/nvme0n1:
Timing O_DIRECT cached reads: 4554 MB in 2.00 seconds = 2277.84 MB/sec
Timing O_DIRECT disk reads: 6786 MB in 3.00 seconds = 2261.96 MB/sec


Те же цифры для обычного hdd с того же сервера
/dev/sdb:
Timing O_DIRECT cached reads: 674 MB in 2.00 seconds = 336.33 MB/sec
Timing O_DIRECT disk reads: 1508 MB in 3.00 seconds = 502.01 MB/sec


А вот для сравнения - с моей эталонной виртуалки
/dev/sdb:
Timing O_DIRECT cached reads: 208 MB in 2.02 seconds = 102.79 MB/sec
Timing O_DIRECT disk reads: 186 MB in 3.03 seconds = 61.47 MB/sec


Теперь - правильные тесты по методике с хабра. если кому интересны полные логи - вот они. Для Intel Optane делались тесты с глубиной 16 и 32, для hdd - только некоторые тесты, для сравнения (потому что тест на hdd идёт довольно долго - на порядок дольше, чем для SSD). Вкратце, тест создаёт ситуацию полной загрузки диска с заданной длиной очереди, и меряет все параметры. Тестов делалось три - сначала только чтение из произвольных мест, потом запись в произвольные места, потом чтение и запись параллельно.

время выполнения теста, msec
ReadWriteRead+Write
iodepth=16iodepth=32iodepth=16iodepth=32iodepth=16iodepth=32
HDD-18505574577666---
SSD299688481744259161512864R:378001, W:474573R:431930, W:498782


среднее время ожидания самого диска (clat), msec
ReadWriteRead+Write
iodepth=16iodepth=32iodepth=16iodepth=32iodepth=16iodepth=32
HDD-496.75614.54---
SSD49.50163.4742.99174.08R:62.38, W:78.37R:146.62, W:169.36


В общем, видно, что там, где HDD не справляется с задачей, уже выдавая задержки почти в половину секунды для каждого запроса, задержка SSD остаётся на уровне 0.2 секунды. Для глубины очереди 1 (в таблицах нет) это время и вовсе сравнимо с задержками операционной системы (2.5 мс - система и 11мс - Оптаня).

Первое впечатление оказалось совсем не ошибочным - железяка у Интела получилась быстрая. Очень-очень быстрая. И наверняка её можно использовать и как память. 375 гигов памяти за полторы тыщи баксов - это весьма неплохо. Может, я ещё раз попрошу у Selectel и они сконфигурируют её как память. Но в этот раз она была в виде диска.

Gparted с параметрами по умолчанию её не видит. Но если запустить с именем девайса - находит и работает как с нормальным диском. Не знаю, специфика ли это ssd или специфика только Intel Optane. Тест fio полностью разрушает разделы и файловую структуру (более того, даже рекомендуется перед его началом заполнить весь девайс нулями), но gparted-ом после теста всё превосходно восстанавливается. То есть проблем как с некоторыми хитро разбитыми флешками, когда если что убил, то какие-то разделы исчезают или восстают из небытия при некоторых случайных обстоятельствах, - нет.

Сам сервер набит по максимуму - два обычных диска по 450 гигов (один из них я использовал как образец для сравнения), собственно Оптаня, сконфигурированная как диск (на ней я погонял fio-тесты), 64 гига памяти и два 10-ядерных Xeon-а (последнее оотношение идеально для einstein@home: 40 процессов занимают 54-56 гигов, и ещё 8 остаётся на всё остальное). Годится для любой серьёзной задачи кроме майнинга. Такую бы машину да под сервер GW в момент первого запуска покемонских островов... хехе.

Обнадёженный ошеломляющими результатами "правильного" теста fio, показанными для Оптани, я решил просто взять и скопировать 150-гигабайтный файл с каждого устройства на каждое другое, включая его самого. И вот результат (в минутах и секундах). Тут получился, скорее, тест всего сервера, и больше всего меня удивило не время копирования с SSD, а быстрота работы обычных дисков в спокойной обстановке.

копирование 150-гигабайтного файла


Что же касается einstein@home, за неделю удалось полностью просчитать более 300 юнитов. Для сравнения, на машинке от StarVPS за 24 дня еле-еле удалось просчитать четыре, остальные протухли (именно тогда я понял, что einstein@Home очень чувствителен к памяти).

Большое спасибо фирме Selectel за сервер, а Рауфу Гадирову - за техподдержку.

Краткое пояснение для тех, кто читает только этот ЖЖ, но не заглядывает в Фейсбук. Когда я остался с одним старым системником, то думал купить себе домой б/у-шный сервер. Или несколько. Но потом посчитал, сколько этот зверюга будет жрать, послушал в серверной на работе, как он будет шуметь, и решил распределить задачи. Первое, что пришло в голову, - много дешёвых планшетов. Из тех, что на авите за тыщу продают. Тем более, тогда я как раз в программировании на андроиде разобрался. Но оказалось, что все планшеты весьма капризны, причём каждый капризен по-своему. И от идеи склеить сервер из пачки планшетов я тоже отказался. Затем пришёл черёд одноплатников. Это была уже идея получше. Но они без охлаждения перегреваются, а с охлаждением шумят. Тогда я обратил внимание на провайдеров, предлагающих виртуалки и выделенные сервера для хостинга, а также на облачные сервисы, и стал ставить свои эксперименты на удалённых машинах. Оказалось, что оплата при этом примерно равна стоимости электричества, которые сожрали бы те же компы, если бы стояли у меня дома. А иногда можно и халяву найти. А иногда - вот как в этом случае и как в случае с кластером KNL от Colfax - не только халяву, но и hands-оn на новую дорогую железку.

Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments