О бессмысленности RAID0 из пяти SSD в домашнем ПК или немного об ограниченности современных чипсетов Intel и AMD

31 июля 2014, четверг 04:31
для раздела Блоги
Одиночный экземпляр — наиболее типичный сценарий эксплуатации SSD-накопителя. Некоторые пользователи собирают RAID-массивы нулевого уровня из двух SSD в целях получения большей производительности. Пусть хотя бы и только в линейных операциях. Но на этом практический опыт, как правило, и заканчивается.
А ведь на самом деле массив RAID0 может состоять и из большего числа накопителей, нежели два.

Так случилось, что у меня в руках оказалось сразу пять одинаковых SSD KingFast F8 объёмом 240 Гбайт каждый.

Грех не воспользоваться таким случаем и не посмотреть на то, как будет масштабироваться уровень производительности от количества накопителей в массиве на современных материнских платах «десктопного» класса. Да и будет ли вообще прирост этой самой производительности?

О накопителях KingFast F8 ещё выйдет отдельная статья в Лаборатории Оверов за моим авторством, поэтому подробно останавливаться на них я не стану, отмечу лишь, что в их основе лежит контроллер JMicron JMF667H и асинхронная память Micron.

А в качестве тестовых стендов я буду использовать ASUS A78M-A (AMD A78, Socket FM2+) с процессором APU A10-6800K, работающим на частоте 4.8 ГГц, и ASUS Maximus VI Impact (Intel Z97, LGA1150) с процессором Pentium G3258 (ES), работающим на частоте 4.2 ГГц

Выбор материнских плат, на первый взгляд, может показаться довольно странным, однако на самом деле ничего странного нет.
Платформу AMD представляет хоть и плата в формате mATX бюджетного класса, но уровень быстродействия SATA-контроллера на ней находится на высоком уровне и вполне достойно покажет платформу в целом (протестировав не один десяток материнских плат, я могу говорить это со всей уверенностью).
Платформу Intel представляет плата формата MiniITX, однако плата эта отнюдь не урезанная — перед нами продукт имиджевого класса серии ASUS ROG. Обзор этой платы написал мой коллега Ivan_FCB. Кстати, обзор ASUS A78M-A тоже написан, но уже мною, и сейчас находится в очереди на публикацию.

Причём для большей чистоты тестов на ASUS A78M-A системный накопитель с операционной системой (кстати, Windows 7 x64 SP1) подключался к стороннему контроллеру на Silicon Image SiL3132, который, в свою очередь, устанавливался в PCI-E x1.
На ASUS Maximus VI Impact, к сожалению, PCI-E x1 нет, поэтому я воспользовался имеющимся слотом M.2, установив в него Kingston SM2280S3 M.2 120 Гбайт.

К сожалению, Maximus VI Impact не допускает включение в массив пятого SSD — подключенный к eSATA накопитель хоть и виден в настройках контроллера Intel, но задействовать его нельзя.
Можно произвести сборку массива силами самой Windows, что я и сделал для пяти накопителей, однако далеко не все бенчмарки способны подружиться с подобным массивом — зависают, либо выдают весьма некорректные результаты. Мало того, работает такой массив весьма нестабильно — попросту разваливается. Поэтому результаты приведены лишь для Crystal Disk Mark, ATTO и AS SSD. Причём с последним это даже не с первой попытки удалось — Windows-массив разваливается на этом тесте.

Для RAID-массивов на платформе Intel использовался драйвер версии 12.9.0.1001, для AMD — 6.1.2.00005.

Итак, приступим.

Futuremark PCMark7
AMD A78

Intel Z97
Отмечу, что с RAID0, собранным из пяти накопителей силами самой Windows, данный бенчмарк не «подружился».


Crystal Disk Mark
AMD A78

Intel Z97

Примечательно, но этом полностью синтетическом бенчмарке AMD на линейном чтении оказывается даже быстрее Intel.
А в случае массива из пяти SSD на Intel Z97, возможно, ограничителем стал способ создания массива.

ATTO
Для удобства сравнения я разобью скриншоты на две группы
AMD A78 5*SSD | 4*SSD

Intel Z97 5*SSD | 4*SSD

AMD A78 3*SSD | 2*SSD

Intel Z97 3*SSD | 2*SSD

В этой синтетике AMD на наиболее простых операциях также кое-где быстрее Intel.

AS SSD Benchmark
AMD A78

Intel Z97

Однако в тесте, более приближённом к реальности, расстановка сил меняется не в пользу AMD. Кстати, обратите внимание на объём массива, собранного силами Windows из пяти SSD, который определила AS SSD как равный объёму одного накопителя.

В заключении — тест RAID10 из четырёх накопителей на Intel Z97:


Ну и просто отмечу факт: драйвера AMD до сих пор не научились пропускать команду TRIM, тогда как у Intel как с двумя, так и с четырьмя SSD в массиве RAID0, нет никаких проблем с передачей этой команды от операционной системы к контроллеру накопителя.



Один KingFast F8 на линейном чтении спокойно выдаёт больше 500 Мбайт/с. Так почему прирост от построения RAID-массива нелинеен?

На самом деле ответ лежит на поверхности: на всех материнских платах обычного пользовательского класса RAID-массив является полу-программным (причём даже существует пренебрежительно-уничижительное название — FakeRAID) — значительная часть операций выполняется драйвером на центральном процессоре (что уже само по себе — ограничивающий фактор), поэтому, помимо передачи пакетов данных по интерфейсу, в случае организации RAID-массива возрастает объём служебного трафика. И, в какой-то момент интерфейс, связывающий чипсет с процессором, который и без того весьма «узкий» (об этом ниже), окончательно превращается в «бутылочное горлышко» системы. А ведь мы и так имеем и дополнительные задержки за счёт полупрограммного решения: система не пишет данные «вслепую» — ей нужно получать ответы от дисковой подсистемы, записаны ли данные, обрабатывать их и лишь после этого отправлять на запись новую «порцию» (а в случае массива — драйверу надо ещё дробить их на блоки). Это микродоли секунд, но они вносят свою лепту. А «толкотня» у ограниченного по пропускной способности интерфейса дополнительно увеличивает задержки.
Небольшое пояснение относительно AMD.
Многие слышали по HyperTransport, связывающую процессоры AMD и чипсеты. Всё верно, это действительно очень широкая по пропускной способности шина, однако связывает она северный мост (который на APU теперь просто находится под крышкой процессора) и сам процессор, а южный мост — связан с северным, а не с процессором напрямую, своей шиной и он ограничен именно ею, а не HT.

Роль интерфейса играют шины DMI2.0 у Intel и UMI 2.0 (либо Alink Express III) у AMD. Пиковая пропускная способность у обоих заявлена равной 2 Гбайт/с (маркетологи предпочитают суммировать «в обе стороны» и пишут 4 Гбайт/с, а иногда, для пущей красоты, пишут циферку в гигабитах, что дополнительно может запутать). Но это — именно пиковая пропускная способность, а реальная ниже — с учётом служебного «трафика». А добавить сюда USB, гигабитный сетевой контроллер и прочий «обвес»… В итоге на контроллер SATA остаётся 1.5-1.7 Гбайт/с. Это ещё в лучшем случае…
Кстати, физически DMI2.0 и UMI 2.0 являют собой слегка модифицированный интерфейс PCI-Express 2.0 x4.

Самое смешное, что топовый Intel X79 точно также связан с процессором DMI2.0. Вот вам и «элитарность» LGA2011…


Блок-диаграмма материнской платы Gigabyte GA-X79S-UP5-WIF на наборе системной логики Intel C606 Express (близок к Intel X79, фактически это он же, но с «легальными» SAS, у X79 оные отключены): восемь SATA, восемнадцать USB, два гигабитных сетевых контроллера, один PCI-E, один PCI, два 2 IEEE 1394a. В реальной жизни оно, конечно, будет работать — обычному пользователю этого, пока что, хватает с головой, но фактически, при желании, на полную мощность мы не сможем нагрузить одновременно даже десятую часть этих интерфейсов. К счастью, вроде как восемь SAS вынесены и работают отдельно на PCI-E x4 (хотя на блок-диаграмме Gigabyte не отражено).

И именно поэтому те шесть SATA3, которые поддерживают Z97, а также современные чипсеты AMD (A88X, A85X, A78, SB950), это лишь удобство сборки — пользователю нет нужды разбираться, в какой именно разъём SATA ему нужно подключать свежеприобретённый SSD. В остальном — голый маркетинг.

Ровно также окажется ограниченной эксплуатация PCI-E SSD в слотах, подключенных к чипсету материнской платы (и порты новомодного SATA-Express это также касается в полной мере — они тоже завязаны на чипсет), ведь с процессором связь всё также идёт через DMI2.0/UMI 2.0. Если для современных SSD в виде карт расширения, вроде используемого в этой статье Kingston или Plextor M6e это не так критично, потому что они физически являются устройствами PCI-E x2, то в последующем поколении, которое уже будет полноценным PCI-E x4, для получения полной скорости (а иначе за что деньги-то уплачены?) нужно будет внимательно относиться как к прочтению инструкции, так и к подбору материнской платы. Во всяком случае, современные матплаты LGA 1150/1155 FM2/FM2+/AM3/AM3+ попросту отпадают в большинстве своём (либо придётся использовать встроенное видео, а накопитель вставлять в слоты PCI-E, предназначенные виидеокартам). Исключением будут лишь некоторые весьма дорогие модели, где задействован специальный мост PLX для увеличения количества линий PCI-E от процессора, вроде ASUS Sabertooth 990FX/GEN3 R2.0 или ASRock Z87 Extreme11/ac — видеокартам 16-ти линий PCI-E 3.0, зачастую просто «за глаза» (если речь не идёт про SLI/CF-конфигурации из 3-4 топовых видеокарт), поэтому они могут «поделиться» частью пропускной способности этого интерфейса.

Однако нужно понимать один очень важный момент: подобные скорости попросту не нужны в современном компьютере.
Простой пример.
Микширование (не перекодирование, а просто пересборка) контейнера mkv (ролик Sintel разрешением 4k и объёмом 5.11 Гбайт) занимает:
— одиночный KingFast F8 — 41 секунда.
— RAID0 из двух SSD — 17 секунд
— RAID0 из трёх SSD — 13 секунд
— RAID0 из четырёх SSD — 12 секунд
Т.е. рост скорости дисковой подсистемы отнюдь не прямо пропорционален результату. А если к этому добавить кодирование видео? Нужен очень мощный процессор, чтобы раскрыть мощь RAID0 уже из трёх SSD, не говоря уже про четыре и больше…

А как дела обстоят с играми?
Я взял для теста всего одну игру, но весьма ресурсоёмкую — Train Simulator 2014 (Steam-версия). На обычном HDD порой приходится ждать порядка минуты для загрузки сценария игры.
— одиночный KingFast F8: первый запуск — 22 секунды, повторные запуски сценария — 17 секунд.
— RAID0 из двух SSD: 20 и 15 секунд соответственно;
Дальнейшее увеличение количества накопителей в массиве не даёт никакого ускорения загрузки вообще.




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

И SATA-Express в нынешних условиях — это уже практически потолок нынешних систем, поэтому установка больше одного, максимум двух разъёмов этого (весьма бездарного по своим габаритам, кстати) интерфейса на материнских платах просто бессмысленна.
Intel и AMD придётся заняться куда более тяжким трудом, нежели нынешней переклейкой этикеток и объявлении старых продуктов новыми — модернизацией наборов системной логики, тем более учитывая то, что первая компания сейчас особенно сильно проявляет заинтересованность в продвижении M.2 и SATAe.
Хотя, я так думаю, скорее всего, модернизируют не чипсеты, а процессоры, добавив туда дополнительные линки PCIe специально для них — это и быстрее, и дешевле. А заодно — очередная замена процессорного сокета со всеми вытекающими полезностями, разумеется, для Intel и AMD. Готовьте кошельки ;)



Кстати, продаваемые в магазинах контроллеры, вроде этого

Являются точно такими же полу-программными решениями. Полноценные SATA-RAID-контроллеры, где на плате присутствует свой кэш, свой процессор и прочие необходимые «мелочи», стоят совсем иных денег, нежели те 300-700 рублей, что просят в магазинах за различные платы на контроллерах Silicon Image Sil3132, ORIENT J363SIR, Marvell 88SE9172 и тому подобных.



Контроллер SATA от Intel предлагает разный размер блоков при создании массива: от 4 до 128 Кбайт.
Размер блока по возрастанию слева направо: 4, 8, 16, 32, 64 и 128 Кбайт.

И размер этот — заметно влияет на уровень производительности: наилучшим, по крайней мере, в моём случае, является самый большой размер — 128 Кбайт. Результаты, кстати, повторяемы: действительно, размер блока в 64 Кбайт нарушает «линию» роста от меньшего к большему и оказывается хуже блока в 32 Кбайт.



Замечания можно высказать в специально созданной ветке Конференции, либо здесь же.
Спасибо.

P.S.
Написано практически на одном дыхании, поэтому просьба сильно не обижаться на грамматику и фразеологию.
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают