Использование Intel NAS Performance Toolkit для тестирования SSD с поддержкой PCIe 4.0 на платформах AMD и Intel

| Рассуждения | HDD, SSD, флешки, прочие носители информации

Для тестирования разнообразных накопителей (как сетевых, так и не очень) мы активно используем старый добрый Intel NAS Performance Toolkit. Очень старый – на самом деле его уже давно приходится гонять в режиме совместимости – программа появилась в 2007 году, не обновляется с нулевых и обновляться разработчиком уже не будет (впрочем, исходный код доступен, но пока в нем ковыряться необходимости не было). Но свою работу по-прежнему делает. Причем, как ни странно, за прошедшее время никто созданием чего-нибудь аналогичного так и не занялся. Хотя все довольно примитивно – программа умеет исключительно читать информацию из файлов или записывать ее по заранее заданным сценариям. Таковые тоже поддаются модификации – например, родные шаблоны мы уже сто лет как не используем, заменив их на собственные. Но при определенных недостатках такого подхода, у него есть и достоинства – являющиеся их продолжением. Например, работа именно на файловом уровне – что было необходимо при ориентации на NAS, но очень полезно и сейчас. Протестировать в итоге можно все, что угодно. При этом программа «реагирует» и на реальные файловые системы, и на кэширование данных – все то, что что важно на практике, но остается «незамеченным» для низкоуровневых утилит. А после того, как основными объектами тестирования стали SSD, а их производители достигли невиданных высот в дрессировке SLC-кэшей, простые низкоуровневые бенчмарки и вовсе только кэш померять и позволяют. Спору нет – тоже дело, поскольку кэширование для того и придумано, чтобы в типовых сценариях большинство операций эффективно «перехватывать», однако в тестах интересно достучаться и до информации – а что будет в нетиповых сценариях. NASPT в этом плане хорош тем, что создание тестовых файлов и само тестирование процессы по времени разнесенные. Так что можно оценить и поведение накопителя при заполнении данными, например. Или сравнить скорость чтения свеже- и давно записанной информации. Ну и многое другое.

И долгое время все шло хорошо. Хотя, напомню, инструмент создавался в свое время для работы с NAS – но отлично подошел и для локальных накопителей. И для жестких дисков, и для SSD. И даже переход с SATA/AHCI на PCIe/NVMe проблем не вызвал. А вот внедрение PCIe 4.0 начало наводить на мысли… что как-то оно не так, как нужно работает. Особенно в отношении тестов записи. «Чистой» — или одновременно с чтением.

Вот, например, диаграмма из одного из наших обзоров. Три SSD на базе контроллера Phison E16 с разным количеством памяти. 500 ГБ объективно медленнее прочих, поскольку писать данные умеет только на скорости 2,5 ГБ/с, 1 и 2 ТБ же и при записи за ограничения PCIe 3.0 x4 выходят. При чтении это делать умеют все, но… По результатам NASPT это не видно! Наблюдается как раз другое – на новой платформе все испытуемые стали работать даже медленнее. И тут можно включить внутреннего конспиролога – и вспомнить, что это Intel NAS Performance Toolkit. Однако, как уже говорил, программа 2007 года – с тех пор что AMD, что сам Intel архитектуры своих процессоров несколько раз поменяли, так что специального привета из прошлого быть не может. Вот общая «нехватка» вычислительных ресурсов для того, чтобы «ворочать» большими объемами данных на высокой скорости – может. Тем более, сравнивая в свое время Ryzen 3 3100 и Ryzen 7 3800X на одном и том же SSD, в некотором преимуществе второго мы уже убедились. Но в небольшом. Да и Core i7-7700 сам по себе еще медленнее.

Отсюда вывод – проблема где-то в программе есть, причем касается она вопросов совместимости с некоторым современным железом. А вот решаемая она сменой последнего или нет – вопрос уже интересный. Поскольку если виноваты конкретные SSD, то сами и виноваты в общем-то. Житейская логика говорит, что обязаны работать новые решения во всех программах не хуже старых. Может, и не лучше – если те с ними работают неоптимальным образом, но не хуже точно. А если речь об элементарных файловых операциях, так программно тут что-то испортить сложно. Остается платформа. Если на других проблем нет – значит на них и нужно тесты переносить. А вот если в любых конфигурациях проблема сохраняется – значит виновата программа и только она. Значит ее больше использовать просто нельзя, несмотря на долгий стаж работы – новую либо искать, либо просто программистам ТЗ составлять (можно и на базе старых исходников).

Одна проблема – формулируется это легко, а вот проверить нормальным образом возможности не было. Поскольку до самого конца прошлого года доступны были исключительно SSD на базе Phison E16 – по сути одинаковые. И ровно одна платформа, где они работали в родном режиме PCIe 4.0. Ну, точнее, полторы – но на деле разнице между AM4 и TRX40 взяться не откуда. В общем, ровно одна связка AMD+Phison. Поэтому вопрос тестирования тестовой программы был отложен.

Как только с планами насчет новой версии PCIe определился и Intel, так сразу посыпались анонсы новых SSD на новых контроллерах. Особенно с осени – когда появились ноутбучные Tiger Lake. А в этом году Rocket Lake принесли поддержку нового интерфейса и в настольную платформу Intel LGA1200. Вот и настало время определиться – можно ли использовать NASPT дальше или уже не стоит.

Первый заход – меняем SSD: вместо двутера на Е16 берем более быстрый WD Black SN850 той же емкости. Устанавливаем в плату на B550 с тем же Ryzen 7 3800X. Для простоты проводим тесты только на пустом устройстве – так оно и чуть быстрее. Видим, что скорость чтения радикально подросла – так и должно быть: там и номинальная на пару гигабайт в секунду отличается. Запись в номинале тоже на целый гигабайт – но вот этого-то, как раз, не видно: у обоих мало, причем идентично. Т.е. вот такое измерение скорости – точно некорректно. Но по чьей вине – пока не ясно.

Ну что ж – недавно как раз вышел Rocket Lake, так что Core i9-11900K и ROG Maximus XIII Hero были у меня еще до официального анонса. Устанавливаем в процессорный слот М.2 WD Black SN850, проводим ту же процедуру с ними вообще ничего не меняя ни в настройках, ни в ПО.

Опаньки! По чтению почти дотянулись до официально заявленных 7 ГБ/с. Но это мелочи – по сравнению с результатами тестов записи – которые тоже прибавили 2-3 ГБ/с, но при более низкой базе. И тоже начали коррелировать с обещаниями от WD. Полностью до заявленных 5 ГБ/с не дотянулись, конечно – но стоит принимать во внимание неизбежный оверхид на «реальных» файловых операциях. Пара-тройка сотен мегабайт в секунду теряется – и это нормально. Разница с тем, что накопитель выдает на PCIe 3.0 радикальная. А вот на платформе AMD она была видна разве что на операциях чтения, да и то какая-то… неубедительная.

Для интереса я повторил процедуру и с Corsair Force MP600. Получилось похоже, пусть и не идентично – в частности, скорость операций чтения вообще не выросла. Впрочем, обновленная прошивка EGFM13.0 ее тоже немного подтягивает, но не принципиально – да и хотелось сравнения в равных условиях. А вот запись попросту «исправилась» — теоретический предел составляет 4,4 ГБ/с и к нему-то мы и приблизились. При этом четко видно, что два SSD по скорости различаются – хотя ранее оба показывали одинаковые значения, причем далекие от заявленных. Но очень близкие к работе в режиме PCIe 3.0.

Итак, проблема была. Оказалось решаемой. Считать ее присущей именно АМ4 не стоит – на деле это некорректная работа конкретной программы на конкретной платформе. Просто означающая, что использовать NASPT на ней не стоит – результаты получаются «неправильными». Но не из-за того, что сама по себе реализация PCIe 4.0 у AMD медленная – на деле многие программы никакой разницы между АМ4 и LGA1200 в этом плане не видят. Хотя может оказаться и так, что NASPT – не единственная «проблемная» утилита, причем речь может идти и не только о бенчмарках. Поэтому столкнувшись с какими-то необъяснимыми явлениями всегда стоит поискать им объяснение. Наверняка найдется – и не обязательно там, где казалось наиболее вероятным ;)

Мне в итоге ситуация пошла на пользу – оказавшись очередным доводом в пользу смены тестовой платформы. Не основным. Основное – что почти за два года так и не удалось найти «идеальную» плату для тестирования накопителей. Поскольку пока у Intelподдержки PCIe4.0 не было, приходилось выбирать исключительно между моделями для АМ4, а там вечно периферии прочей не завозили. Обновилась LGA1200 – и вот сходу нашлось все в одном флаконе: чтоб и PCIe4.0, и PCIe3.0 в точности такой же, как в большинстве систем последней пятилетки (а тесты в режиме совместимости по этой причине еще долго будут актуальными), и USB3 Gen2×2 непосредственно в чипсетах, и даже Thunderbolt4 нередко тоже в наличии. Кроме того, можно обойтись без дискретной видеокарты (на AM4 пока приходится выбирать между интеграшкой и PCIe4.0 – вместе не встречаются), да еще и старый проверенный временем софт работает как надо. Вот и славненько.

1 комментарий

v
драйвер nvme — одинаковый?
как вариант — а если проц загрузить, что б он частоту не ронял — что-нить меняется?

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