"Разгон" жесткого диска или RAID0 дома.

для раздела Блоги
Предисловие.
Собрав осенью 2008 новый "системник", я добился удовлетворившего меня уровня производительности и сбалансированности компонентов, но вот незадача, из всего этого явно выбивался мой "жесткий" 500GB Seagate 7200.11(тогда про проблемы с прошивкой было мало чего известно и меня это естественно не беспокоило). У меня постоянно создавалось ощущение, что система то и дело упирается в его скорость. Появилось желание его "разогнать" тем или иным способом, разумеется затратив наименьшее количество дензнаков. Собственно поэтому я и решил заняться этим "исследованием".
Сейчас в моде всеразличные "технологии удвоения" и даже "учетверения": многоядерные процессоры, связки из нескольких видеокарт, многоканальный доступ к оперативной памяти.
Причём те, что относятся к процессору и памяти являются обыденными и используются повсеместно. С видеокартами, в силу сложности написания драйверов, не все так очевидно. Все они появились относительно недавно, разве что "мультипроцессоры" существуют давно, но именно как системы с несколькими CPU, а не многоядерные CPU. Так что на лавры первооткрывателя может претендовать технология объединения жестких дисков - RAID, появившаяся ещё в 1987 году, но прижившаяся в основном в серверах. Домашние же компьютеры в подавляющем большинстве своем пока обходятся одиночным, либо несколькими одиночными дисками.
Вообще здесь нужно сказать, что основной характеристикой CPU и видеокарт является их производительность. И именно в этом главнейшем направлении они развиваются. ОЗУ(как, впрочем, и любая другая память) имеет уже две основные характеристики и на данный момент они почти равноценны, точнее сказать сбалансированы. По началу в фаворе был объём, но в определенный момент(начало 2000) получилось так, что SDRAM память в разы отстала от высокочастотных Pentium 4 и Athlon снизив их производительность, в то же время особых проблем с объёмом не возникало и можно считать что приоритетным направлением было увеличение её скорости, чем и занялись производители выпустив RAMBUS, DDR SDRAM, а затем и введя повсеместную поддержку Dual Channel.
Т.к. жесткие диски являются основным хранилищем информации, то важнейшим направлением всегда было наращивание их объёма. Постепенно файлы копились, размеры программ росли, музыка и видео переходили в цифровой формат(а потом в более качественный ЦФ) и потому рост емкости был востребован. Востребован он и сегодня. Следствием этого стал тот факт, что скорости накопителей уделялось значительно меньше внимания, тем более что здесь производители столкнулись с дополнительными трудностями, такими как увеличившийся нагрев и энергопотребление и уменьшение ресурса(а для накопителей это более критично чем для других компонентов). С процессорами и видеокартами были те же проблемы, но они мешали основному направлению развития и их было НЕОБХОДИМО преодолеть. А здесь нет.
Нужно конечно отметить, что в серверах скорость оказалась значительно более важным фактором и именно поэтому по скоростным качествам дисковые подсистемы серверов ушли от настольных систем примерно на порядок, но на том и остановились. По тем же причинам я полагаю.
Вот так собственно и стал HDD "узким местом". Где, что и как уперлось мы сейчас и посмотрим.
Итак скорость жесткого диска зависит от нескольких параметров:
1. Скорость вращения шпинделя. Основной параметр влияющий и на скорость чтения/записи и на время доступа. В настольных системах уже как раз лет 10 остановившаяся на уровне 7200 оборотов/мин. Есть правда исключение - 10000о/мин диски Raptor и VelociRaptor от WesternDigital. Но они всегда были во много раз дороже чем обычные 7200 того же объёма и потому назвать их массовыми язык не повернется*. В серверах этот показатель удалось довести до 15000о/мрн, но на том и остановились.
2. Плотность записи. Параметр прямо влияющий на объём, скорость чтения/записи. Тут-то всё как раз крайне радужно, т.к. это направление влияющее на объём активно развивалось и развивается, и будет развиваться во всех сегментах.
3.Объём кэша(буферной памяти). Считается, что благотворно влияет на запись данных на диск и вообще на всю работу с диском. Однако наиболее распространенные ОС от Microsoft не очень-то хорошо умеют её использовать и на мой взгляд значение этого параметра переоценено.
*Собственно эти диски и являются "выходом" из сложившейся ситуации, но вот цена этого "выхода" меня и не устраивает. За эти деньги можно сделать массив из нескольких обычных дисков выиграв в объёме и, возможно, в скорости.
Я приведу составленную мною табличку развития основных характеристик HDD для десктопов за последние лет 10.

Как видно скорость чтения/записи выросла, а вот время доступа так и осталось прежним для 7200о/мин. дисков.
Но вернемся к RAID. Эта технология задумывалась для того, чтобы увеличить надежность дисковой подсистемы, но как оказалось с её помощью можно и ускорить эту самую подсистему, например созданием массива 0 уровня(который впрочем многие не считают RAID-ом).
Здесь приведу ссылку на статьи/FAQ основные принципы и варианты RAID:
http://forum.ixbt.com/post.cgi?id=annc:11:38437
http://forums.overclockers.ru/viewtopic.php?p=5100426#5100426
http://ru.wikipedia.org/wiki/RAID
Нас в данном случае интересуют только те массивы которые ускоряют дисковую подсистему, причём чем сильнее, тем лучше. Так что если вам(как и мне) не хватает скорости HDD, то ,вроде бы, решение проблемы лежит на поверхности - берите 2(3,45..) дисков, объединяйте их в RAID0 и будет вам счастье и быстрая дисковая подсистема, благо, ныне, материнские платы со встроенным RAID контроллером есть уже даже в самом дешевом сегменте.. Но не всё так просто как оказалось. Мало того, что надёжность массива RAID 0 равна произведению вероятностей безотказной работы составляющих его дисков, каждая из которых меньше единицы, таким образом совокупная надёжность заведомо ниже надёжности любого из дисков. Так ещё и контроллер(в нашем случае встроенный либо бюджетный) "сыпет соли на рану", грозя, в случае сбоя, развалом массива с потерей всех данный без возможности восстановления и прочие "грабли":
•нестабильность контроллера или заменяющего его софта;
•неконтакт кабелей;
•несовместимость firmware дисков и контроллера, проявляющаяся под нагрузкой или спонтанно;
•внезапные "ребуты" ввиду сбоя софта, приводящие к потере информации в кэше и т.д. и т.п.
Посему сразу скажу, что если данные на диске сколько-нибудь ценны, то использовать RAID0 не стоит. Соответственно понадобится уже третий по счету диск для хранения этих данных(для организации RAID0 нужно минимум 2 диска), что недешево. НО всё ещё дешевле чем покупать 1(ОДИН!!!) 320GB VelociRaptor.
Но перейдем к приятному. RAID0 ускоряет скорость чтения/записи причём прирост почти кратен числу дисков в массиве (примерно: 2 диска - в 1.9 раза, 3 диска - 2,85.. и т.п. зависит от контроллера). А вот время доступа остается прежним

Тестовый стенд и методика тестирования
Вообще, тестов HDD в сети море, но все они содержат в себе в основном синтетику того или иного рода. А реальные приложения пролетают мимо по причине того, что как измерить производительность там, неясно. Я с этим тоже столкнулся. Я решил, что из обычных задач наиболее зависят от HDD операции установки программ и их загрузки. Вот время осуществления этих операций я и замерил. Почему я не включил операции копирования? Ну как по мне, было бы довольно странно в домашних условиях(что абсолютно не исключает того, что в каких-то профессиональных задачах это может понадобиться), что-то копировать или перемещать с диска на диск, а копирование с/на внешних носителей всегда ограничено скоростью этих внешних носителей. Такое дело как "бэкап" я не затронул просто потому, что с ним никак не вяжется RAID0 на встроенном контроллере. Без синтетики не обошлось разумеется, т.к. надо было проверить, для начала, что всё функционирует как надо.

Моя система:
Процессор: Intel Core 2 Quad Q6600 @ 3,7GHz
Материнская плата: ASUS P5Q Pro FSB@412MHz BIOS 1613
Оперативная память: 2*2GB DDR2-825 Kingston 5-5-5-15 PL11 2T
Видеосистема: Gainward Radeon HD 4850 и CrossFire HD 4850 Частоты: 625/1990MHz
Контроллеры SATA HDD:
Intel ICH10R
Marvell 88SE6111+SiliconImage 5723*
Silicon Image 3132. BIOS: 7.4.05

*данное решение сделанное инженерами ASUS на этой плате называется DriveXpert(далее я буду называть его Marvell т.к. именно он является дополнительным PCI-E x1 SATA контроллером и чтобы не перепутать его с отдельным SiliconImage) и представляет собой вот такую хитрую систему:


Жесткий диск:
Пара Seagate Barracuda 7200.10 320GB 3.AAE SATA AHCI

Seagate Barracuda 7200.11 500GB SD1A SATA AHCI

Я протестировал одиночные диски, создал массивы 0 уровня из 2х дисков на 320GB на 3х разных контроллерах, а также добавил свой 500Гб диск и посмотрел что из этого выйдет. Также я проверил влияние размера stripe на скорость массива.






Програмное обеспечение:
Операционная система: Microsoft Windows Vista Ultimate x64
Драйвера чипсета Intel: Intel Inf Driver 9.1.0.1012
Драйвера видео: Catalyst 9.3
Версия DirectX от ноября 2008
Драйвера для контроллера Silicon Image 3123: 1.5.18.0
Драйвера для контроллера Marvell 88SE6111: 1.2.0.60

Для измерения скорости дисковой подсистемы я использовал следующие тесты:
Время установки ОС Windows Vista, точнее время копирования файлов на диск на начальном этапе установки.
Время загрузки этой же системы: в банальном количестве пробежавших за это время полосок, и полное время от выбора ОС до загрузки рабочего стола в секундах.
Время установки игры GTA4. Источником служил мой терабайтный WD Black.
Время установки игры Crysis.
Время загрузки 1го уровня игры Crysis.
Время установки игры FarCry 2.
Уровень производительности при первом прогоне бенчмарка игры Crysis. (проверялось 3 раза, каждый следующий после перезагрузки, чтобы исключить влияние ОЗУ).
Уровень производительности при первом прогоне бенчмарка игры FarCry 2. (проверялось 3 раза, каждый следующий после перезагрузки, чтобы исключить влияние ОЗУ)

Результаты тестов:

Установка Windows Vista

Скорость судя по всему ограничивающим фактором послужил DVD+RW привод с которого и шла установка.
*на 500Гб диск система устанавливалась только один раз при подключении к контроллеру ICH10, и другие тесты проводились после банального переподключения этого диска с "южника" на Marvell.
Загрузка Windows Vista


В лидерах массив из двух 320Gb дисков на ICH10R с размером "страйпа" - 128Кб. Улучшение по сравнению с одним диском почти 2х кратное. За ним замедлившийся, после добавления отличающегося 500Гб диска, массив из 3х дисков. И почти на уровне с ним одиночный 500Гб, учитывая, что при чтении кэш играет значительно меньшую роль нежели при записи, можно отнести значительное повышение скорости загрузки на увеличение плотности записи в 1.5 раза. Дополнительные контроллеры снижают скорость загрузки. Особенно плохо получилось с Marvell'ом (кто бы мог подумать ) - во время загрузки система начинала вдруг опрашивать DVD+RW привод и на это уходило порядочное количество времени и само время загрузки и так была значительно хуже чем в других случаях.
Тестирование с помощью HDTune

Прирост минимальной скорости близок к двукратному, но только когда RAID организован силами "южника", при этом он уверенно обходит одиночный 500Гб. Заметно вперед вырвался массив из 3х дисков. Теория не врет .
Дополнительные контроллеры судя по всему ограничивают максимальную скорость и при использовании более быстрых дисков от них будет больше вреда чем пользы.

как и ожидалось разница минимальна т.к. серьёзно зависит только от скорости вращения шпинделя, а она везде одна - 7200о/м

Установка GTA4

RAID0 из 2х дисков не впечатлил, зато впечатлил 500Gb - сыграли свою роль и плотность записи и кэш. Видимо он же и вытянул массив из 3х дисков. Среди контроллеров предпочтительнее оказался SiliconImage, но разница невелика.

Установка Crysis

Хм... либо всё уперлось в источник(WD Black1TB) либо в разархивирование которое зависит от процессора. В любом случае разница минимальна.

Установка FarCry2

Здесь оказалась важна линейная скорость и на высоте оказались RAID0 массивы, а одиночный 500Гб подотстал. В любом случае установка заняла около 2х минут и значительную часть(до половины всего времени) её составляли операции по установке дополнительных компонентов типа directX, visual c++ redistr.и прочих.

Загрузка Crysis

Наиболее важный для меня тест оказался очень привередлив к контроллеру и его задержкам, так что "южник" собственной персоной "на коне". Впрочем разница не очень велика.

Также я хотел попробовать оценить влияние на собственно скорость игры, мы ведь когда играем "3х кратных прогонов с целью минимизации влияния жесткого диска" не делаем. Однако ничего толком не вышло


Crysis (Direct3D 10) – версия игры 1.2.1, профиль настроек “VeryHigh”, тест видеокарты gpu_bench с помощью утилиты Crysis BenchmarkTool v1.0.0.5

Какой-то логичной зависимости нет - все в пределах погрешности. Странно повел себя 500Гб подключенный к Marvell'у, с ним бенч выдавал строго на пару кадров больше, причём и в последующих прогонах когда от него ничего не должно было зависеть.

FarCry 2(Direct3D 10) – версия игры 1.0.2.0. Настройки качества Ultra High. Демо Ranch Small.

Здесь уже что-то проглядывается. Игра всё время "шуршит" дисками и ускорение дисковой подсистемы позволило увеличить минимальный FPS. Но важна латентность, скорость доступа и хвалёный ASUS'ом DriveXpert(он же Marvell) с треском проваливается.

Теперь пришло время обобщить все вышеприведенные результаты. С установкой всё предельно ясно: я устанавливал игры с отдельного WD Black 1Tb, а ОС с обычного DVD+RW привода. Если бы устанавливалось с USB flash например то наверняка разницы не было бы вообще - упор в скорость носителя с которого происходит чтение.
А вот с загрузкой интереснее: явно свою роль играет плотность записи т.к. "новый" Seagate явно быстрее "старого", также для записи критичен объём кэша и разумеется качество firmware(которое к слову у Seagate в последнее время сильно хромает). Поэтому и RAID0 из 2х одинаковых HDD ускорил загрузку. Но только когда он подключен к "нормальному" ICH10R, Marvell-DriveXpert пострадал из-за своей мудрёности, а Silicon Image видимо ничем не лучше чем встроенный контроллер, но из-за задержек шины PCI-E x1 его результаты хуже.. а может просто драйвера.
Заключение
Несмотря на некоторую противоречивость, "разгон" дисковой подсистемы прошел успешно и мне удалось зафиксировать ускорение множества обыденных задач таких как загрузка программ и игр, а также их установка (при которой происходит и копирование и разархивирование). Приятно удивило ускорение этих же задач при переходе на HDD с более "плотными" пластинами и увеличенным кэшем(именно в этом направлении сейчас бытовые HDD и развиваются).
Должен впрочем сказать, что по ощущениям разницы между самым быстрым из получившихся массивов и одиночным 320Гб диском не было. Виной тому одинаковое время случайного доступа.

Однозначно рекомендовать построение RAID0 на обычных дисках я не могу, т.к. стоимость такого решения всё-равно будет чуть-ли не втрое превышать стоимость одного диска(два для массива и один для хранения ценных данных). К тому, же быстрый диск нужен для ОС и программ/игр, но они вряд-ли у кого-то занимают объём более 500-600Гб.. обычно куда как меньше. А как мы видели RAID0 на дисках с меньшей плотностью записи совсем немного выигрывает у одиночного но более "плотного" диска. Который к тому-же не потребует покупки дополнительного диска для ценных данных.
Недавно вышли диски с плотностью записи 500Гб на пластину - т.е. втрое и вдвое выше чем у протестированных мною дисков, с большой долей вероятности можно сказать что такие диски превзойдут любую из протестированных конфигураций. А стоят они смехотворно мало по сравнению с 10к дисками и даже RAID'ом из менее емких 320Гб(однопластинных) дисков. Ну а 1ТБ под программы это на мой взгляд немного странно..
Впрочем во время написания этой статьи я наткнулся вот на такой материал где описывается методика уменьшения времени доступа на обычных 7200 дисках.
http://www.thg.ru/storage/short_stroking/index.html
Ну и конечно нельзя не упомянуть о пресловутых SSD дисках, дешевеющих не по дням, а по часам, у которых латентность практически нулевая, скорость чтения достигает 250МБ/с (OCZ Vertex 120Гб и более), правда с записью есть некоторые проблемы, так же как и с ресурсом (MLC), но думаю скоро всё это будет преодолено, а цены за ГБ упадут хотя-бы до уровня WD VelociRaptor.
На такой приятной ноте я и закончу свое "повествование".

п.с. забыл про stripe size.
судя по всему правильно сказано - от добра, добра не ищут и надо использовать тот размер который сам производитель контроллера счел наилучшим (хотя поэксперементировать никто не запрещает)

Критика и пожелания сюда:
http://forums.overclockers.ru/viewtopic.php?p=6008122#6008122





Telegram-канал @overclockers_news - это удобный способ следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.
Оценитe материал

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

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

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