Пойдём со мной, мой агнец хрупкий
мой ум созрел для зла...
После долгих трёх лет написания обзоров я уяснил одну очень простую вещь: - никогда не нужно торопиться с обзором. Во-первых, читателю нужно дать "созреть", то есть дождаться того момента, когда он уже будет знать о предмете обзора больше автора. Во-вторых, нужно убедиться, что тот продукт, который ты рассматриваешь, появился в продаже - это повысит интерес к обзору. В-третьих, автор должен быть уверен в том, что в обзоре он не допустил крупных ошибок... Ибо грамотные читатели, купившие железку, рассмотренную в обзоре, могут сделать далеко идущие выводы о твоих умственных способностях...
В этом обзоре мы рассмотрим первый SerialATA-диск, который уже появился в московской рознице, - диск Seagate Barracuda SATA V. Компания Seagate выступила эдаким "застрельщиком" по продвижению нового интерфейса на рынок и, похоже, настроена очень серьёзно. Наша же задача - убедиться в том, что SATA-интерфейс работает, и сравнить производительность SATA и ATA-дисков. А то может и огород городить незачем. :)
Serial ATA
Итак, а что же такое SerialATA? Это новый интерфейс, который должен заменить собой привычный для нас интерфейс ATA. Основное отличие - другой способ передачи данных по кабелю. Вместо параллельного 40-жильного кабеля в новом интерфейсе используется всего две пары проводников, заплетённых вместе с тремя "земляными" жилами в плоский кабель. Каждая пара проводников может передавать данные в своём направлении. Принцип передачи данных полностью аналогичен использованному в Ethernet или FibreChannel (отличается только частота работы). При таком способе передачи интерфейс гарантирует пропускную способность 1,5Гбит/сек. на расстояние один метр.
Не тратя более времени на досужие разговоры, попытаемся с самого начала ответить на главный вопрос "Кому SATA нужно?". Попробуем вспомнить всех "заинтересованных" лиц и начнём с производителей винчестеров. Нужен ли им новый интерфейс? На текущий момент вроде бы никаких аргументов за срочное внедрение нового интерфейса я найти не могу.
Действительно, стандарт ATA/ATAPI6 решил проблему больших дисков (т.е. позволил винчестерам преодолеть 128ГБ-барьер), а, если вдруг кому-нибудь из производителей покажется, что его винчестерам не хватает скорости интерфейса, никто не мешает ему последовать примеру Maxtor.
Стандарт ATA применяется в миллионах компьютеров, и эти компьютеры потенциально готовы принять в себя новые ATA-диски. Да, конечно, на старых материнских платах может возникнуть проблема с подключением к ней жёстких дисков большого объёма. Но это проблема легко решается обновлением BIOS-а! Впрочем, есть мнение, что "саботаж" производителей материнских плат в этом плане является одним из методов "заставить" пользователей приобрести себе новые материнские платы. Ведь все новые материнские платы умеют работать с винчестерами больших объёмов...
Ну, а пользователи, которые не любят, когда их шантажируют, всегда могут приобрести внешний PCI-контроллер для новых жёстких дисков.
Может быть SATA выгоден производителям материнских плат? Как дополнительная фича - может быть, ведь чем длиннее спецификации материнской платы, тем проще продавцу "объяснить" пользователю необходимость её покупки. С другой стороны, производителям нельзя сейчас отказываться от поддержки обычного PATA - слишком много устройств выпущено и выпускается для этого интерфейса. Но ведь тогда на материнской плате образуются дополнительные разъёмы... А это увеличивает стоимость материнской платы, особенно если учесть, что на текущий момент материнские платы поддерживают SATA только за счёт интегрированных RAID-чипов от стороннего производителя. К тому же этому RAID-чипу вынь да положь подключение к PCI-шине, а это автоматически "обрезает" его пропускную способность с гипотетических 150МБ/сек. до 133МБ/сек. (и чем это лучше, чем UDMA133?). Получается и производителям материнских плат SATA "здесь и сейчас" не нужно...
Тогда может быть это самое SATA никому и не нужно? Хотя, нет, постойте. Мы же забыли упомянуть еще одну заинтересованную сторону - пользователей! Давайте перечислим выгоды, которые пользователи могли бы получить от SATA-винчестера. А, заодно, я добавлю свои ощущения от "первого контакта" с SATA-дисками.
Тонкий и гибкий кабель.
Да, кабель SATA намного компактнее, места в корпусе много не займёт. Плюс, так как допустимая длина кабеля составляет 1 метр, то его можно очень удобно проложить внутри корпуса.
Но так как теперь один кабель позволяет подключить к контроллеру только одно устройство, то в системах с большим количеством дисков будет наблюдаться некое подобие серпентария - куча мала из тонких шлейфиков. К тому же, кто Вам сказал, что шлейфы гибкие? Все шлейфы, что я успел "потрогать", относительно легко гнутся только в одной плоскости - вдоль провода. И они СОВЕРШЕННО не гнутся в другой плоскости. Что порождает еще одну проблему, о которой мы поговорим чуть позже.
Теперь о длине кабеля. Стандарт SATA оговаривает максимальную длину кабеля - 1м. И во всех рекламных проспектах это выдаётся за "достоинство". Но каково же было моё удивление, когда я вскрывал коробки с SATA-контроллерами (обычными и RAID) и находил там "огрызки" кабелей с привычной длиной в 45см. Форменное издевательство!
Компактный разъём.
Теперь вместо больших и широких разъёмов PATA на материнской плате можно разместить большее количество компактных разъёмов SATA.
Да, разъём стал маленький. С точки зрения пользователя это значит только одно - в него сложнее стало попасть! Особенно, если компьютер уже наполовину собран... Лёгкость, с которой кабель "прыгает" на разъём (в том случае, если Вам удалось как следует прицелиться :) ), тут же сказывается отрицательно на устойчивости соединения кабеля и устройства. Так как разъём не снабжён фиксатором, то жёсткий кабель, не уложенный "по правилам", тут же перекашивает разъём, и до разрыва контакта остаётся только сильно тряхнуть компьютер при перевозке... Всё-таки большой PATA-разъём гарантировал лучшее соединение за счёт трения.
HotSwap и HotPlug.
Возможность подключать диски "на ходу" - это серьёзный прорыв вперёд. Если с ATA-дисками для реализации HotPlug нам нужны были специальные мобайл-реки, то теперь "безопасное" подключение устройств к шине реализовано в самой конструкции разъёмов винчестера и его электроники.
Тут у меня нет никаких серьёзных аргументов против, за исключением той малости, что на текущий момент поддержку HotPlug со стороны операционных систем можно считать "условной".
Надёжность
Протокол SATA обеспечивает гарантированную передачу по кабелю каждого байта информации, в отличие от стандарта ATA/ATAPI6, в котором контрольной суммой сопровождаются только данные (а команды передаются "на авось").
Большая скорость.
Ещё один серьёзный аргумент в пользу SATA - большая скорость обмена данными между диском и хост-контроллером. Так как с приходом SATA мы наконец-то можем забыть о концепции Master-Slave, то каждое SATA-устройство не делит шину, соединяющую его с контроллером, и может полностью располагать всей её пропускной способностью. А это ни много, ни мало 150МБ/сек.
Да, но до той поры, как SATA-контроллеры переберутся в южные мосты чипсетов, SATA-контроллеры будут использовать для доступа к памяти шину PCI, а это значит что скорости 150МБ/сек. мы из SATA-диска не выжмем. И уж тем более не выжмем 300МБ/сек. из двух SATA-дисков в RAID0! Конечно, существуют материнские платы с шиной PCI32/66МГц, но, к сожалению, их очень мало...
С другой стороны, современные диски могут отдавать данные с такой скоростью очень недолгое время - пока у них кэш не опустошится. А это, как Вы понимаете, произойдёт очень быстро. Так что сейчас пропускной способности в 150МБ/сек. нам не требуется, и можно считать её наличие хорошим заделом на будущее.
Кстати о будущем... Если я еще не окончательно Вас запугал, то самое время приглушить тон моих контр-SATA-аргументов. Ибо я - старый брюзга, и потому меня можно и не слушать. :)
Представим себе компьютер конца 2005-го года: материнская плата с процессором колоссальной мощности. Частота шины процессора выросла вдвое относительно современной, но разводка материнской платы сильно не усложнилась! Ведь разработчики вместо 32-х дорожек для каждого ATA-разъёма (16 - данные и 16 - управляющие сигналы) теперь разводят только по 4 сигнальных линии для каждого SATA-разъёма!
Сами винчестеры сменили форм-фактор - теперь они выполнены в размере 2.5". Интерфейс, конечно, - SATA II (пропускная способность 300МБ/сек. на устройство, поддержка command queuning и т.п.). Питание винчестеры теперь получают не напрямую от блока питания, а через специальные разъёмы на материнской плате. Это позволяет экономить электроэнергию, выключая, например, двигатель винчестера по необходимости.
Красивое будущее, не правда ли? Так и хочется сказать "Жаль только жить в эту пору прекрасную, уж не доведётся ни мне ни...". Так как мы привыкли не ждать милостей от природы, то давайте посмотрим, что мы можем получить от SATA уже сейчас.
"Тонкие" сервера наконец-то получат удобный способ использовать ATA-диски.
Пользователи наконец-то получат возможность относительно просто собирать многодисковые массивы.
Китайские производители HotSwap мобайл-реков (эти реки на самом деле являются переносными гробами для винчестеров) останутся без работы.
Пользователи, теоретически, получат более скоростные диски (за счёт более скоростного интерфейса).
Ну, вот, пожалуй, и всё, что я смог придумать.
Давайте теперь посмотрим на сам диск:
Внешне вроде бы ничем не отличается от обычной Barracuda ATA V. Посмотрим поближе? Для большей наглядности я удалил защитную крышку SeaShield, закрывавшую электронику.
Единственное отличие, которое можно найти "невооружённым взглядом" - новый разъём:
Слева 7 контактов информационного разъёма (длинные зубчики - земля, короткие - информационные), а справа - контакты питания. Как видите, в правой гребёнке много "длинных" контактов. Это сделано специально для обеспечения корректного HotPlug (и unplug, естественно). Из-за разной длины контактов питания по каждому напряжению (всего заложено три напряжения - 3.3, 5 и 12V) винчестер всегда будет знать направление передвижения разъёма питания. То есть сможет определить момент своего подключения/отключения.
Электроника жёсткого диска интересна прежде всего неизвестным Googl-у чипом LSI. Кэш буфер объёмом 8МБ мы уже неоднократно видели на других винчестерах, и, хотя мы впервые видим его на диске Seagate, но неизвестный чип LSI сильнее будоражит воображение...
Так как от информационного разъёма в этот чип уходят 4 проводника, а с основным чипом его соединяют уже много дорожек, то логично предположить, что это некий конвертер ATA<->SATA. С другой стороны, если бы Seagate потребовался такой конвертер, то почему она не использовала конвертер от Marvel - он же наверняка дешевле. Может быть этот таинственный чип может нечто большее, чем просто трансляцию SATA<->PATA?
Мои первоначальные предположения, что этот чип является конвертером ATA<->SATA, к счастью, оказались ошибочными. Благодарю Gary Hendershot-а за предоставленную мне дополнительную информацию об этом чипе, которой я спешу с Вами поделиться. На самом деле этот чип является ничем иным, как выделенным контроллером-трансивером последовательного интерфейса. То есть этот чип попросту связывает основной контроллер винчестера c SATA Host-контроллером. Ядро чипа LSI носит звучное имя GigaBlaze®. Более подробную информацию о нём можно почепнуть здесь и здесь.
Таким образом, винчестер Seagate Barracuda SATA V действительно является первым SATA-винчестером с нативной поддержкой Serial ATA-интерфейса. Снимаю шляпу и ем её! :) А вот так выглядит переходник питания:
До тех пор пока в блоках питания не будет таких разъёмов питания, эти переходники будут в дефиците.
А вот так выглядят информационные SATA-кабели.
Методика тестирования
Итак, как же мы будем тестировать наши SATA-диски? Казалось бы, всё просто - вокруг уже достаточно материнских плат с установленными чипами SATA-контроллеров от Promise и SiliconImage. Но здесь и возникли сложности. Мне хотелось попробовать в деле SATA-диски и на контроллерах Promise и на контроллерах SiliconImage (чтобы понять влияние "встроенных" трансляторов ATA<->SATA), а материнской платы, на которой были бы установлены оба этих контроллера мне не попадалось. Но использовать различные материнские платы, и уж тем более под разные процессоры, как минимум, некорректно - все тесты в той или иной степени платформо/процессорозависимы.
Именно поэтому для тестов была использована одна тестовая платформа, в которой менялись только внешние PCI-контроллеры.
А что же за диски мы будем тестировать? С начала года по Москве "бродили" сэмплы диска Barracuda Serial ATA V ёмкостью 120ГБ с ранней версией firmware 3.00. Я тогда заполучил один диск и даже немного потестировал ( :) ), но написание статьи был вынужден отложить ввиду наличия явных несуразностей в результатах тестов (об этом - чуть ниже). Скорость SATA-дисков на тот момент явно не соответствовала их возможностям, так что я решил не поднимать панику. Ну, действительно, не кричать же на весь Интернет - "Серийный убийца ATA оказался импотентом!"... ;)
Чуть позже появились Barracuda SATA с firmware 3.01, результаты которых в корне отличались от ранее полученных; так что, как я и предполагал, всё дело было в сырости firmware сэмплов "первой волны".
Волею провидения в моих руках оказались два диска Seagate Barracuda Serial ATA V разной ёмкости - ST380023AS и ST3120023AS (на 80 и 120ГБ соответственно). И это очень здорово, потому что мы сможем сравнить скорость этих дисков с их ATA-аналогами.
Мне очень хотелось показать в обзоре диск объёмом в 80ГБ, так как это самый популярный и выгодный объём (по соотношению цена/ёмкость). Но если бы в одном обзоре сошлись 80ГБ ATA-диск и 120ГБ SATA-диск, не неизвестно кто бы еще и победил! :)
Так как диски Barracuda SATA/ATA V ёмкостью 80ГБ имеют лучшее время average seek time, чем диски ёмкостью 120ГБ (за счёт того, что в 80ГБ-диске пластины используются не на полный объём), то при сравнении "быстрого" 80ГБ ATA-диска и "нормального" SATA-диска на 120ГБ нам пришлось бы трудновато...
Для сравнения с SATA-дисками были взяты три диска Seagate - ST380023A, ST3120023A и ST3120024A. Первые два винчестера - обычные модели Barracuda ATA V с 2МБ кэш-буфером, а вот о третьем диске следует поговорить особо. Это модель Barracuda ATA V, но с 8МБ кэш-буфером! Да-да, и такие диски бывают! И именно этот диск оказался категорически полезен в нашем тестировании, так как он является "мостиком" от обычных ATA-дисков к SATA-моделям. Как мы знаем, SATA-диски Seagate имеют кэш-буфер объёмом 8МБ, и потому при сравнении их с ATA-дисками, имеющими маленький кэш-буфер, мы не сможем с уверенностью утверждать - чем вызвано преимущество SATA-дисков над дисками ATA - быстрым интерфейсом или большим размером кэш-буфера. Но теперь, так как у нас есть диск ST3120024A, мы попытаемся сделать "правильные" выводы.
Кстати, внимательные читатели могут уже не читать выводы, так как я их уже только что разболтал... :)
Состав тестовой системы:
материнская плата - ASUSTeK P3B-F;
процессор - Intel P3 600E;
память - 2*128Mb SDRAM Hyundai PC100 ECC;
винчестер - IBM DPTA 372050;
видеокарта - Matrox Millennium 4Mb;
операционная система - Windows 2000 Professional SP2.
Тесты ATA100-винчестеров проводилиcь на контроллере Promise Ultra100 TX2 (BIOS: 2.20.0.14 Drivers: 2.00.29), а для SerialATA-винчестеров использовались два контроллера - Promise SATA150 TX2 Plus (BIOS: v1.00.0.20 Drivers: 1.0.0.16) и SiliconImage SiI CP3112SATA150 (BIOS: 4.1.50 Drivers: 1.0.0.41)
Вот так выглядят наши контроллеры:
SATA-контроллер SiI CP3112SATA150 SATA-контроллер Promise SATA 150 TX2 Plus SATA-контроллер Promise SATA 150 TX2 Plus SATA-контроллер Promise SATA 150 TX4 Контроллер Promise SATA 150 TX4 отличается от Promise SATA 150 TX2 Plus тем, что у него отсутствует ATA133-канал, и вместо него "разведены" два SATA-канала.
Следует сказать, что контроллеры Promise SATA имеют одну особенность, отличающую их от контроллера SiliconImage. Если последний является полноценным SATA-контроллером, то контроллеры Promise получены из ATA133 RAID-контроллеров Promise добавлением в них необходимого числа конвертеров от Marvel (о чём свидетельствует логотип Marvel на маркировке чипа). По опыту работы с внешними переходниками PATA<->SATA - был и такой этап во внедрении SATA в нашу жизнь - могу сказать, что скорости они не добавляли. Интересно, как эти трансляторы Marvel повлияют на скорость контроллеров Promise...
Использовались следующие версии тестовых программ:
HDTach 2.61
WinBench 99 2.0
IOMeter 1999.10.20
FC-Test v0.3
Перед тестами винчестеры переводились в "быстрый" режим при помощи
Hitachi Feature Tool. Для тестов в WinBench винчестеры размечались в FAT32 и NTFS одним разделом с размером кластера по умолчанию (для разметки дисков в FAT32 использовалась программа
Paragon Partition Manager), тесты проводились по четыре раза, учитывался максимальный результат. Винчестеры между тестами не охлаждались. Тестирование в IOMeter проводилось на паттернах SequentialRead, SequentialWrite, Database, Workstation, Fileserver и Webserver. За подробным описаниями паттернов Вы можете обратиться к нашим предыдущим материалам.
Исследуемые винчестеры имели следующие версии firmware:
Возвращаясь к вопросу "а почему были выбраны контроллеры Promise и SiliconImage?" хочу добавить, что, несмотря на то, что к моменту прихода сэмплов с FW 3.01 я уже собрал внушительную коллекцию SATA-контроллеров, включая SATA RAID-контроллеры, я предпочёл остановиться только на двух контроллерах SATA. Причина всего одна - эти контроллеры получили (или получат в ближайшем будущем) самое широкое распространение. И компания Promise Technology и компания SiliconImage не только делают контроллеры на своих чипах, но и поставляют чипы производителям материнских плат. На текущий момент не иметь на материнской плате интегрированного ATA/SATA RAID-контроллера считается просто неприличным. :)
Так что бизнес у этих компаний процветает.
Контроллеры 3Ware и HighPoint оказались "не у дел", потому что это RAID-контроллеры, и нет смысла тестировать с их помощью одиночный диск. И BIOS RAID-контроллера и его драйвера имеют специфическую оптимизацию под работу с несколькими дисками, так что при работе с одним диском ATA RAID-контроллер обычно медленнее, чем просто ATA-контроллер (во всяком случае, с контроллерами Promise и HighPoint я такое наблюдал...).
RAID-контроллеры 3Ware и HighPoint - весьма неплохи (коварный автор таки их потестировал), но результаты их мы рассмотрим в следующей статье.
Перед тем, как перейти к результатам тестов, давайте договоримся о "терминологии". Так как писать полное название модели ST3120023A или ST3120023AS - дело скучное (да и пальцы можно сломать), то предлагаю следующую схему наименования:
ST380023A = ATA 80
ST3120023A = ATA 120
ST3120024A = ATA 120-8
ST380023AS = SATA 80
ST3120023A = SATA 120
Далее, так как в тестах у нас один и тот же винчестер может выступать на разных контроллерах, то в диаграммах будут представлены результаты пары "контроллер + винчестер". Названия контроллеров тоже, к сожалению, пришлось упростить (ну очень они длинные...), и после этого получились такие комбинации:
Promise Ultra100 TX2 + ST380023A=
Promise U100 + ATA 80 Promise Ultra100 TX2 + ST3120023A=
Promise U100 + ATA 120 Promise Ultra100 TX2 + ST3120024A=
Promise U100 + ATA 120-8 Promise SATA150 TX2 Plus + ST380023AS=
Promise-WB + SATA 80 Promise SATA150 TX2 Plus + ST380023AS=
Promise-WT + SATA 80 SiliconImage SiI CP3112SATA150 + ST380023AS=
Sil3112 + SATA 80 SiliconImage SiI CP3112SATA150 + ST3120023AS=
Sil3112 + SATA 120 Как Вы, наверное, заметили, контроллер Promise SATA 150 TX2 Plus образовал две комбинации, причём в названии этих комбинаций присутствуют таинственные сочетания букв "WB" и "WT". Это ничто иное, как сокращения от "Write Back" и "Write Through". Дело в том, что вместе с драйверами контроллера Promise поставляется такая мааленькая утилитка
Cache Config:
которая позволяет менять режим работы контроллера (политику кэширования). Так как чип Promise PDC20375 вряд ли содержит кэш-буфер приличной ёмкости, я склонен полагать, что речь идёт о программной эмуляции кэша, а точнее - о некоей предварительной обработке драйвером поступивших запросов, на что, естественно, должны расходоваться ресурсы ЦП. И скоро мы в этом убедимся.
Перед тем, как перейти непосредственно к результатам тестов, хотелось бы напомнить следующее - это наше первое тестирование SATA-винчестеров и SATA-контроллеров. Мы еще не выбрали себе эталонные контроллеры для сравнения винчестеров и винчестеры для сравнения контроллеров, и при анализе результатов тестов учитывайте, пожалуйста, что мы в каждом случае рассматриваем результаты работы некоего диска на некоем контроллере.
HDTach
Открывает наше тестирование программа HDTach 2.61. За те три года, что мы используем HDTach для тестов винчестеров, мы видели всякое, но такого...
Во-первых, обратите внимание на строчку Average Access time: - диски ёмкостью 80ГБ показали намного лучшее среднее время доступа, чем диски по 120ГБ (в этом, правда нет ничего удивительного - об усечённых пластинах дисков по 80ГБ мы уже говорили). Удивительно другое - среди всех 80ГБ-дисков выделяются результаты комбинации Promise-WT + SATA80 - показанное этой парочкой Average Access time составило всего 12.6 ms! Единственное объяснение, которое приходит мне в голову - что при использовании режима WT на контроллере Promise SATA150 TX2 Plus винчестер не делает упреждающее чтение.
Во-вторых, при переходе ко второй строчке - Read Burst speed (максимальная скорость передачи из кэш-буфера винчестера) - мы наблюдаем странную картину - диски с интерфейсом SerialATA демонстрируют гигантский разброс по этому параметру. Основным "возмутителем" спокойствия стал контроллер Promise: в зависимости от режима кэширования (WT/WB) скорость чтения из буфера винчестера меняется от 60 до 334МБ/сек.!
Что характерно, скорость чтения из буфера винчестера сильно зависит и от версии firmware винчестера и от версии драйвера контроллера! :)
Но если мы внимательно посмотрим на полученные результаты, то поймём, что никакой чудо-контроллер не сможет передать через шину PCI32/33МГц такой поток данных - 334МБ/сек. Так что полученные данные ровным счётом ничего не значат - тест HDTach не всегда может корректно измерить скорость чтения из кэш-буфера SATA-винчестеров. Тогда сразу встаёт вопрос - а корректно ли HDTach меряет скорость чтения из буфера обычных винчестеров? Или этот тест не в состоянии корректно работать только с "хитрыми" драйверами Promise?
Чтение пропускаем - там ничего занимательного не наблюдается, всё вроде бы корректно. А вот при записи...
Обратите внимание на максимальную скорость записи у диска ST3120024A (ATA120-8 по нашей системе сокращений) - она более чем в полтора раза выше, чем у ST3120023A (ATA120)! Вполне логично предположить, что такой высокой максимальной скорости записи диск ST3120024A достигает не только за счёт механического увеличения размера кэш-буфера, но и за счёт изменения политики кэширования. Чуть позже мы рассмотрим скриншоты графиков чтения/записи, а пока перейдём к следующему странному обстоятельству.
На контроллере SiliconImage SATA-диски с разной ёмкостью показали не только разную максимальную (случайные выбросы бывают...), но и разную среднюю скорость записи. И это при том, что оба диска имеют одинаковое firmware, и что оба диска мы тестировали на одном контроллере... Чудеса, да и только...
Перед тем, как перейти к обсуждению "скриншотов" теста, мне хотелось бы обратить Ваше внимание на загрузку процессора, которую показал SATA-диск подключенный к контроллеру Promise, работающий в режиме WB - 17.5 процентов! Что же, это подтверждает высказанную чуть выше идею о программной реализации режима WB в драйверах контроллера Promise. Однако тест HDTach в этот раз уже обеспечил нас сюрпризами на год вперёд, так что не будем делать окончательных выводов только по результатам этого теста.
Итак, посмотрим на графическое представление результатов работы теста HDTach. Вот такую картину я наблюдал при тестах диска ST3120023AS с firmware 3.00 на контроллере Promise SATA 150 TX2 Plus (WB):
При взгляде на график чтения никаких эмоций, кроме положительных, не возникает. Однако при записи творится странное! В самом начале скорость записи взвивается до небес (до 60МБ/сек.), некоторое время держится на уровне 50МБ/сек., а потом падает до 10МБ/сек. Потом скорость записи опять растёт, но уже до 30МБ/сек., потом снова падает до 10МБ/сек., и в дальнейшем мы можем наблюдать осцилляцию графика между последними цифрами, что в результате оставляет на экране жирную зелёную полоску...
Как мы понимаем, скорость записи на пластину у диска Barracuda SATA V не может составлять 60МБ/сек. Следовательно, эта скорость - ничто иное, как скорость передачи блока данных в буфер винчестера. Если предыдущее умозаключение верно, тогда мы можем объяснить пик скорости в начале теста, как процесс наполнения кэш-буфера диска несколькими запросами! Если firmware винчестера позволяет отводить под отложенную запись значительный объём кэш-буфера, то мы действительно будем наблюдать такую картину. Не поленившись открыть log-файл теста HDTach, я с удовлетворением отметил, что падение скорости записи (по версии HDTach) произошло аккурат на 8-м запросе. Дальше - банальная арифметика: объём кэш-буфера диска - 8МБ, объём одного блока данных, которым оперирует HDTach - 1056КБ (на самом деле HDTach генерирует пакет из 33 запросов по 64 сектора в каждом, но драйвера контроллера Promise, насколько я понимаю, "собирают" из них один большой запрос, так как контроллер работает в режиме WB).
К сожалению, использованная мною утилита мониторинга не позволяла узнать размер запроса ПОСЛЕ его прохождения через драйвера Promise. Потому <догадки> о методах работы драйверов Promise ничем более серьёзным, чем догадками не являются.
Умножаем 7 на 1056 и получаем 7392КБ. Вычитаем из 8192КБ (заявленный размер кэш-буфера) 7392K и выясняем, что для 8-го запроса места в буфере-то и не хватило! :)
Винчестеру перед тем, как принять от HDTach восьмой блок данных, пришлось записать на пластину как минимум 256КБ данных (чтобы освободить место в кэш-буфере для приёма полного 8-го блока). И это только в том случае, если организация кэш-буфера диска Seagate позволяет объединять в одну кэш-линию несколько блоков кэша с разными физическими адресами. В противном случае диск для приёма следующего блока должен полностью записать на пластину данные одного из предыдущих запросов.
На самом деле всё еще интереснее... Для того, чтобы заставить винчестер выполнить запись, которую порядочный винчестер всегда попытается отложить, тест HDTach, после того как он отправит на винчестер 33 запроса на запись, "подхлестывает" винчестер запросом на чтение (32К со следующим адресом). Коварный тест... :)
Посмотрим, что изменилось при смене firmware диска с 3.00 на 3.01? :)
ST380023AS с firmware 3.01 на контроллере Promise SATA 150 TX2 Plus (WB):
Как видим, поведение теста изменилось незначительно. Ну, разве что на "гребёнке" скорости записи стали видны отдельные зубчики (наверное, запретили отдавать весь буфер под запись...). Но всплеск в начале теста остался, и скорость записи по-прежнему невысока.
А теперь при помощи утилиты Cache config переведём контроллер Promise SATA 150 TX2 Plus в режим "WT" (Write Through). При этом все запросы на запись должны исполнятся немедленно:
ST380023AS с firmware 3.01 на контроллере Promise SATA 150 TX2 Plus (WT):
И это кардинальным образом меняет всю картину! Посмотрите, как выросла скорость записи!
Так как буфер винчестера теперь наполняется запросами на запись по 32К, то сам процесс опустошения/наполнения буфера стал более плавным.
Чтобы убедиться, что высокая скорость записи достигается не за счёт использования интерфейса SATA или за счёт хитрых драйверов Promise, рассмотрим три следующих графика. Начнём с результатов диска ST380023AS на контроллере SiliconImage:
ST380023AS с firmware 3.01 на контроллере SiliconImage CP3112SATA150:
Как видите, график очень похож на предыдущий. Смена контроллера не привела к изменению характера работы HDTach... Тогда давайте попробуем кардинально изменить объект исследования. Возьмём обычный ATA100-диск ST3120023A (с буфером 2МБ) на контроллере Promise Ultra100 TX2:
ST3120023A с firmware 3.31 на контроллере Promise Ultra100 TX2:
Ага, воскликнули сибирские мужики! :)
Скорость записи стала невысокой, т.е. "обычной". Может быть дело в размере кэш-буфера? Нет проблем, берём ATA100-диск с буфером в 8МБ:
ST3120024A с firmware 3.33 на контроллере Promise Ultra100 TX2:
Собака порылась здесь! :)
Полтора года назад у меня возник спор с одним из "коллег по цеху" о влиянии размера кэш-буфера (и его организации) на скорость записи, измеряемой HDTach. Надеюсь, он читает этот обзор... ;)
Ну, что же, осталось рассмотреть только загрузку процессора, измеряемую HDTach - среди всех сочетаний диск-контроллер по этому параметру выделяется только связка ST380023AS + Promise SATA150 TX2 Plus, работающий в режиме "WB". Измеренная загрузка процессора оказалась в три раза выше, чем у всех остальных участников тестирования.
По результатам тестов следует заметить следующее. При том способе измерения скорости записи, какой использует HDTach, винчестеры Seagate с 8МБ буфером показывают более высокие результаты, нежели диски Seagate с буфером в 2МБ. Также можем отметить, что говорить о влиянии типа интерфейса (ATA/SATA) на скорость записи мы пока не можем.
Что же, попробуем сотворить тесты чтения и записи сами, благо у нас есть чудная утилита IOMeter!
Sequential Read & Write
Используемый нами способ измерения скорости чтения и записи кардинально отличается от того, который использует тест HDTach. В нашем паттерне для IOMeter на винчестер посылаются запросы на чтение и запись при фиксированной глубине очереди команд (queue=4), т.е. винчестер всегда находится под нагрузкой. При этом мы не смешиваем в потоке команд запросы на чтение и запись и тем самым упрощаем винчестеру работу. Действительно, если нам хочется узнать максимальную скорость записи винчестера, зачем просить его и писать и читать одновременно? Вторым отличием нашего подхода к измерению скорости чтения и записи является то, что мы измеряем скорость чтения и записи винчестера при работе с блоками данных разного размера, а не используем блоки фиксированного размера.
В результате, наш способ даёт значительно больше информации о исследуемом винчестере, да и не только о нём!
Итак, начнём с последовательного чтения. Измерение скорости чтения с винчестера проводится с блоками различного размера, и в таблице результатов Вы можете увидеть зависимость скорости чтения от размера блока данных (они указаны в левом столбце).
Рассмотрим результаты тестов отдельно для винчестеров различной ёмкости (исключительно для того, чтобы не запутаться в графиках...). Начнём с дисков, ёмкостью 80ГБ:
В этой диаграмме мы можем сравнить скорость чтения обычного ATA-диска и SATA-диска, причём последний выступает на трёх SATA-контроллерах. Да, да, я не оговорился, - на трёх контроллерах. Ибо контроллер Promise SATA150 TX2 Plus при помощи утилиты Cache Config можно превратить в два совершенно разных контроллера!
Как видим, при работе с пакетами малого размера, SATA-винчестер на контроллере Promise SATA150 TX2 Plus с активированным режимом WB оказался вдвое быстрее остальных соперников. Не знаю, как Вас, но меня эта "кратность" настораживает. :)
Но не может не насторожить и тот факт, что в режиме WT SATA-диск на контроллере Promise SATA 150 TX2 Plus оказался медленнее даже обычного ATA-диска.
Контроллер SiliconImage не показал ничего сверхъестественного - его скорость можно считать аналогичной скорости обычного ATA-диска на "обычном" контроллере Promise Ultra100 TX2.
При работе с блоками данных большого размера ( >8КБ) все SATA-контроллеры показали одинаковую скорость, а вот ATA-диск немного отстал от них. У него скорость чтения достигла отметки 40МБ/сек. (а произошло это при работе с 16КБ-блоками) и остановилась на этой цифре.
Судя по этим результатам, SATA-контроллеры, не использующие "специальную" оптимизацию драйверов не увеличивают скорость чтения винчестера при работе с мелкими блоками. Но не будем спешить с выводами, ведь мы видели на фотографии винчестера Seagate некий неопознанный чип-нативизатор... Может быть, это он не даёт интерфейсу SATA развернуться в полную силу?..
Посмотрим, как соотносятся скорости винчестеров c ёмкостью 120ГБ.
Как видим, в этом раунде побеждают ATA-диски! Причём диск с кэш-буфером в 2МБ оказался быстрее своего собрата с большим объёмом кэш-буфера. Как говориться, лишние знания - лишние проблемы. :)
С чем связан недобор скорости у связки SATA-контроллера SiliconImage и SATA-диска - сложный вопрос, на который у меня пока нет ответа... Ведь у 80ГБ диска на контроллере SiliconImage всё было замечательно.
Что же, запишем в загадки (а то какой же это обзор без загадок!).
Поговорим лучше о другом феномене - о скорости чтения с SATA-винчестера на контроллере Promise SATA150 TX2 Plus. Как убеждённый материалист, я утверждал, что такой рост скорости невозможен без использования некоей оптимизации. С большой долей вероятности мы можем утверждать, что обработка истории запросов и их кэширование производится драйвером контроллера, а значит вся нагрузка ложится на плечи центрального процессора.
Тест IOMeter, в числе прочего, измеряет и загрузку процессора при обработке дисковой операции, и мы можем сравнить по этому параметру контроллеры между собой:
Обратите внимание на верхний график - великолепное подтверждение программной реализации режима WB у контроллера Promise SATA 150 TX2 Plus! При работе с мелкими блоками процессор загружен почти на 100 процентов. В то же время, по мере увеличения размера запросов, посылаемых на винчестер (поступающих в драйвер контроллера), загрузка процессора резко падает. При работе с большими блоками загрузка процессора приближается к 30 процентам, а затем резко падает до уровня остальных контроллеров.
Чуть раньше я предположил, что драйвера контроллера в режиме WB "сдваивают" пакеты данных с последовательными адресами, но вид графика загрузки процессора говорит нам, что алгоритм работы драйвера не так прост. Зато одно мы можем утверждать смело - драйвер не "оптимизирует" запросы, размером более 64КБ.
Кстати, SATA-контроллер Promise в этом тесте показал не только самую высокую загрузку процессора, но и самую низкую! Обратите внимание на результаты SATA-диска и контроллера Promise SATA 150 TX2 Plus в режиме WT. При работе с блоками меньше четырёх килобайт, загрузка процессора у этой комбинации ниже, чем у всех остальных конфигураций. И, что самое любопытное, мало зависит от размера блока!
Ох и хитрые же у Promise драйвера... :)
Переходим к записи:
Как и в предыдущий раз, рассмотрим сначала результаты 80ГБ-винчестеров:
Контроллер Promise SATA 150 TX2 Plus и при записи продемонстрировал высокую скорость работы (в режиме WB), но и контроллер SiliconImage явно быстрее, чем ATA-контроллер Promise! Обратите внимание, что график, полученный на SATA-контроллере Promise в режиме WB, всё время на ступеньку опережает график контроллера SiliconImage (ну бейте меня палкой по пяткам, но сдваивает Promise пакеты! :) ). Даже наклон участков одинаковый...
Отметим, что контроллер SiliconImage спотыкается на блоках по 8КБ - чем-то они ему не потрафили.
Судя по скорости 120ГБ-винчестеров, большой кэш-буфер не является "ускорителем" при последовательной записи. А, впрочем, в честь чего он должен был ускорять запись? Если объём данных, который последовательно пишется на винчестер, значительно больше размера буфера, то последний не оказывает ровно никакого влияния на скорость записи (в отличие от того способа, которым работает HDTach). Отметим, что диск ST3120024A (Barracuda ATA V с 8МБ кэш-буфером) при записи оказался медленнее, чем ST3120023A. То есть большой буфер отрицательно повлиял на скорость диска? Скорее, дело не в увеличении размера буфера, а в изменении алгоритмов работы с ним - диск ST3120024A имеет другую версию микрокода (firmware).
Ну и, в заключение, рассмотрим загрузку процессора при записи:
Как и следовало ожидать, картина примерно та же, что и при чтении. На мелких блоках загрузка процессора при работе контроллера Promise SATA 150 TX2 Plus в режиме WB шкалит под 100 процентов, а в режиме WT едва переваливает за 50 процентов (хм... опять кратность "2"). Контроллер SiliconImage загружает процессор немного сильнее, чем Promise SATA 150 TX2 Plus в режиме WT, но лучше всех показал себя самый обычный ATA-контроллер Promise Ultra100 TX2.
Database
После того, как мы проверили скорость дисков в тестах последовательного чтения/записи, посмотрим, как они справятся со случайными запросами. Паттерн "Database" прекрасно подходит для такого исследования, так как адрес 8КБ-блока в этом паттерне всегда выбирается при помощи генератора случайных чисел. К тому же, при помощи этого паттерна мы сможем узнать как различные контроллеры ведут себя при различных соотношениях запросов на чтение и запись.
Итак, начнём с режима с линейной нагрузкой (queue=1):
Database (queue=1) Чтобы нам было проще анализировать результаты, разнесём графики 80 и 120ГБ винчестеров на отдельные диаграммы.
На первой диаграмме представлены результаты винчестеров, ёмкостью 80ГБ:
Очевидно, что диск с SATA-интерфейсом побыстрее своего ATA-предка. Особенно превосходство SATA-диска сказывается при большой доле запросов на запись. Ничего удивительного, ведь у SATA-винчестера больший размер кэш-буфера, и, следовательно, есть возможность сделать отложенную запись более эффективной. Обратите внимание на скорость SATA-диска на контроллере Promise SATA 150 TX2 Plus в режиме WB! При работе с RandomWrite-запросами скорость этой связки резко возрастает! И в этом тоже нет ничего удивительного - мы уже знаем, что в режиме WB драйвера контроллера Promise SATA 150 TX2 Plus производят дополнительную "обработку" запросов. Как видим, кэширование (или сортировка) запросов на запись драйвером контроллера по своему эффекту аналогична алгоритмам отложенной записи, реализуемым самим винчестером (и в некоторых случаях даже более эффективна :) ).
У винчестеров ёмкостью 120ГБ ситуация прямо противоположная - ATA-диск с маленьким кэш-буфером уверенно сражается с SATA-диском на контроллере SiliconImage. Но вот чего, наверное, никто не ожидал, так это неуверенного выступления ATA диска с буфером в 8МБ. Как видим, ему при увеличении доли операций записи становится всё хуже и хуже. Не дать ни взять, как тому самому лосю из анекдота... :)
Увеличим нагрузку на диски (queue=16):
Database (queue=16) При такой нагрузке графики дисков уже достаточно расслоились, чтобы мы могли легко их различить. Итак, лучше всех в этом режиме "сработал" SATA-диск на контроллере Promise SATA 150 TX2 Plus (WT). Только при Random Write вперёд выходит связка SATA-диск на том же контроллере Promise, но в режиме WB. Диск с ATA-интерфейсом начинает очень неплохо. При Random Read он показывает ту же скорость, что и SATA-диск на контроллере Promise SATA 150 TX2 Plus (в режиме WT), но по мере увеличения доли операций записи всё больше отстаёт от конкурентов. SATA-диск на контроллере SiliconImage в режиме Random Read особой прыти не продемонстрировал, но при увеличении доли операций записи подтянулся к результатам связки SATA-диск & контроллер Promise SATA 150 TX2 Plus (в режиме WT).
Диски ёмкостью 120ГБ продолжают озадачивать. Самым быстрым по-прежнему является ATA-диск с маленьким кэш-буфером, а максимальное отставание от него ATA-диска с кэш-буфером объёмом 8МБ приходится на режим с равной долей операций чтения и записи. То есть на тот режим, где преимущества кэш-буфера большого объёма и должны были себя проявить!
Итак, чтобы окончательно прояснить "оптимизацию" различных контроллеров и дисков, увеличим глубину очереди команд до 256 запросов.
Database (queue=256) Ну вот оптимизация и проявилась... Очевидно, что контроллер Promise SATA TX2 Plus в режиме WT лучше всех справляется с сортировкой запросов. Учитывая это, весьма странно наблюдать низкие результаты этого же контроллера, работающего в режиме WB. По всей видимости, снижение скорости работы контроллера вызвано увеличением времени, необходимого драйверам контроллера для обработки запроса. Так как в паттерне Database адрес блока данных всегда вычисляется случайно, то оптимизация, которая отлично работала при Sequential-запросах (поиск запросов на последовательно расположенные данные и их объединение в пакет - "packet chain command"), работает вхолостую и лишь задерживает выполнение команд. Что и приводит к уменьшению скорости...
Контроллер SiliconImage способен конкурировать с Promise SATA 150 TX2 Plus (WT) только в самых "простых" режимах, когда в потоке команд доминируют запросы или на чтение или на запись. В остальных случаях он, как видите, проседает.
Отставание ATA-диска по мере увеличения доли запросов на запись вызвано на мой взгляд небольшим размером его кэш-буфера.
Для дисков по 120ГБ тоже всё становится на свои места. Быстрее всех работает ATA-диск на контроллере Promise Ultra100 TX2, SATA-диск на контроллере SiliconImage чуть "провис", а поведение ATA-диска с 8МБ кэш-буфером очень похоже на поведение "младшего брата", но диск с 8МБ буфером немного медленнее во всех режимах, исключая RandomWrite.
Fileserver & Webserver
После синтетики душа требует чего-нибудь... серверного. :)
Fileserver Так как мы не знаем с какой нагрузкой придётся работать нашему серверу, то сравним комбинации контроллер-диск по усреднённому значению Total I/O:
Среди 80ГБ-дисков лидером по скорости оказался SATA-диск на контроллере Promise SATA 150TX2 Plus в режиме WT. На второе место вышел SATA-диск на контроллере SiliconImage, а на третье место сумел втиснутся ATA-диск на контроллере Promise Ultra100 TX2. Замыкает четвёрку 80ГБ винчестеров SATA-диск на контроллере Promise в режиме WB. Как мы ранее уже отмечали, при работе со случайными запросами режим WB отрицательно сказывается на скорости диска.
Среди 120ГБ-винчестеров лидером оказался ATA-диск с 2МБ кэш-буфером. На втором месте - SATA-диск на контроллере SiliconImage, и замыкает группу ATA-диск с 8МБ кэш-буфером.
Webserver Интересно, что при смене характера запросов к диску (паттерн Webserver в отличие от паттерна Fileserver не содержит запросов на запись) кардинально меняется и расстановка сил среди наших испытуемых. Например, SATA-диск на контроллере SiliconImage заметно сдаёт позиции, а в паттерне Fileserver эта связка выступила очень уверенно. Но зато посмотрите, как резко "прибавили" ATA-диски! Правда, на первом месте, как и в предыдущем паттерне, оказался SATA-диск на контроллере Promise SATA 150 TX2 Plus (WT).
Workstation
Тесты в серверных паттернах выявили некоторое преимущество SATA-дисков вкупе с контроллерами Promise, но как обстоят дела со скоростью винчестеров при их "десктопном" использовании? А чем отличается нагрузка на дисковую подсистему настольного компьютера и сервера? В первую голову - интенсивностью запросов. Именно поэтому наш паттерн Workstation исследует производительность винчестеров при небольших нагрузках (1-32 исходящих запроса):
При вычислении рейтинга производительности винчестеров в этом паттерне мы пользуемся другой формулой вычисления, нежели в серверных паттернах, где мы просто усредняли полученные значения Total I/O. Так как для дисковых подсистем настольных компьютеров высокие нагрузки нехарактерны (то есть они иногда и возникают, но на очень короткий промежуток времени), то будет справедливо учитывать результаты винчестеров при высоких (для десктопа) нагрузках, но придавать этим результатам невысокий весовой коэффициент.
Производительность = Total I/O (queue=1)/1 + Total I/O (queue=2)/2 + Total I/O (queue=4)/4 + Total I/O (queue=8)/8 + Total I/O (queue=16)/16 + Total I/O (queue=32)/32 Как видите, формула очень проста - вклад в финальный результат скорости винчестера обратно пропорционален глубине очереди команд, при которой этот результат показан. Хочу заметить, что эта формула получена "эмпирическим" путём и на глубокую научную обоснованность не претендует. ;)
Что не мешает ей быстро расставить винчестеры по местам. Обратите внимание на результаты 80ГБ-винчестеров - чистая победа SATA-дисков! Результаты SATA-диска на 120ГБ чуть скромнее, но и он победил в своей подгруппе!
Интересно, с чём связано такое "ускорение" SATA-дисков? Неужели им "помогает" интерфейс? Скорее дело в большем размере кэш-буфера, ведь в паттерне Workstation запросы на запись составляют изрядную долю.
Winbench99
Попробуем сравнить винчестеры при помощи нашего старого-доброго теста Winbench99:
Как обычно, рассмотрим результаты винчестеров по двум основным подтестам - Business Disk Winmark и High-End Disk Winmark:
Первое, на что хочу обратить Ваше внимание - на результаты 120ГБ-дисков в Business Disk Winmark. Очевидно, что большой размер кэш-буфера положительно влияет на результат в этом тесте. Даже на интерфейсе ATA100 диск Barracuda ATA V с 8МБ кэш-буфером на 17 процентов обогнал диск той же модели, но с меньшим размером кэш-буфера. Но SATA-диск оказался ещё быстрее! А если мы сравним результаты 120ГБ-дисков в High-End Disk Winmark, то увидим, что преимущество ATA-диска с 8МБ кэш-буфером над ATA-диском с 2МБ кэш-буфером совсем невелико, в то время как SATA-диск опережает их весьма уверенно!
В подгруппе 80ГБ-дисков наблюдается та же картина - SATA-диски уверенно опережают диск с интерфейсом ATA и в Business Disk Winmark и в High-End Disk Winmark. Обратите внимание, что SATA-диск на контроллере Promise SATA 150TX2 Plus (WB) показал лучшие результаты в Business Disk Winmark, но его результаты в High-End Disk Winmark меньше, чем у SATA-диска на контроллерах SiliconImage и Promise SATA 150 TX2 Plus (WT).
Посмотрим, что изменится при переходе на NTFS:
Изменения не кардинальные, но они есть. :)
Во-первых, преимущество 120ГБ ATA-диска с 8МБ кэш-буфером над диском с 2МБ кэш-буфером в High-End Disk Winmark стало уже условным... Действительно, оно меньше, чем погрешность измерения.
Во-вторых, скорость SATA-диска на контроллере Promise SATA 150 TX2 Plus (WT) в тесте High-End Disk Winmark оказалась меньше, чем у того же диска на том же контроллере, но работающем в режиме WB. Это весьма странно, ведь под FAT32 всё было с точностью до наоборот...
По результатам тестов в Winbench99 мы можем сказать, что SATA-диски показали впечатляющий рост скорости, причём он достигнут не только за счёт увеличения размера кэш-буфера до 8МБ. В то же время, мы не можем утверждать, что росту результатов "способствовал" только более скоростной интерфейс - не будем забывать про влияние firmware!
Но, как бы то ни было, мы видим, что текущие SATA-диски работают явно быстрее, чем их ATA-аналоги.
FC-Test
Завершает обязательную программу наших испытания мой любимый тест - FC-Test!
Тем, кто еще не знаком с FC-test-ом и методикой тестирования им жёстких дисков, предлагаю прочесть увлекательную статью на эту тему.
Главной особенностью нашей методики исследования винчестеров на способность копирования файлов (можно сказать - изюминкой) является режим создания на винчестере набора файлов и его чтение. В этом режиме мы измеряем среднюю скорость создания на винчестере некоего набора файлов (то есть, фактически, измеряем скорость записи) и скорость чтения с винчестера некоего набора файлов (среднюю скорость чтения файла).
Второй, не менее важной, особенностью является то, что мы при проверке скоростных качеств винчестера не используем синтетические наборы файлов (это слишком упростило бы работу винчестеру), а используем наборы файлов, "снятые" с совершенно реального компьютера. Именно поэтому мы предполагаем, что тестируем винчестеры в реальных условиях. Ведь у многих наших читателей на компьютере присутствует папка "Windows" или, например, - "MP3". :)
Третьей особенностью теста, к сожалению, неприятной, является то, что при работе тест использует вызовы операционной системы, и потому его результаты зависят от состояния операционной системы на момент запуска теста (содержимое файла подкачки, состояние дискового кэша и т.п.). Частично мы можем улучшить повторяемость результатов фиксированием размера файла подкачки и запуском теста сразу после перезагрузки Windows (естественно, не сразу после открытия рабочего стола, а после полной загрузки). Ну и, конечно, помогают многочисленные итерации. :)
Итак, рассмотрим сначала работу винчестеров, а, точнее, связок контроллер-винчестер на файловой системе FAT32.
FAT32 Все результаты (в MB/sec) сведены в таблицу, а сравнивать наших подопытных предлагаю при помощи диаграмм. Начнём, пожалуй, с записи:
Как видим, при малых размерах файлов (паттерны "Windows" и "Programs") все винчестеры показывают одинаковую скорость. Но как только средний размер файла становится больше размера кэш-буфера младших дисков (средний размер файла в паттерне MP3 - 3.65МБ), так сразу стройный ордер разваливатся...
Вперёд вырывается SATA-диск на контроллере Promise SATA 150 TX2 Plus (WB), а по пятам его преследуют два SATA-диска разной ёмкости (120 и 80ГБ) на контроллере SiliconImage. И совсем ненамного отстал от них SATA-диск ёмкостью 80ГБ на контроллере Promise (WT).
Отметим, что лучший результат ATA-диска более 10 процентов уступает худшему результату SATA-диска! Причём, результат этот показал 120ГБ-диск с кэш-буфером 2МБ! То, что он обогнал ATA-диск на 80ГБ легко объяснимо - у диска ёмкостью 120ГБ больший размер цилиндра и, соответственно, за один заход можно записать больший блок данных. Но вот почему такую низкую скорость показал ATA-диск c 8МБ кэш-буфером - непонятно... Кстати, результаты FC-Test в данном случае противоречат результатам HDTach - какому из этих тестов Вы верите больше? :)
При работе с файлами из паттерна "ISO" вперёд выходят SATA-диски на контроллере SiliconImage, а скорость SATA-диска на контроллере Promise SATA150 TX2 Plus совершенно не зависит от способа кэширования запросов. Что интересно, ATA-диск на 120ГБ с 2МБ кэш-буфером по-прежнему намного быстрее своего "брата" с кэш-буфером большего обьёма.
А при работе с файлами из паттерна "Install" (средний размер - 1,4МБ) инициативу вновь захватывает SATA-диск на контроллере Promise SATA 150 TX2 Plus (WB)! Его отрыв от ближайшего преследователя составляет примерно 2,5МБ/сек. (10%).
Что же, при записи SATA-диски выглядели намного предпочтительнее своих ATA-предков. Что же будет при чтении?
А вот при чтении SATA-диски не имеют никакого преимущества перед своими ATA-аналогами! Единственная связка, результаты которой резко отличаются - SATA-диск на контроллере Promise SATA 150 TX2 Plus (WB). Но, если при записи кэширование запросов увеличивало скорость этой связки, то при чтении скорость работы этой связки резко падает! В чём может быть дело? Может быть нас лимитирует высокая загрузка процессора? Или при чтении алгоритмы WB-контроллера вступают в противоречие с алгоритмами упреждающего чтения винчестера? Однозначного ответа у нас пока нет...
Со скоростью чтения и записи мы уже разобрались, и теперь настала пора совместить эти два режима. Итак, начинаем тесты копирования!
На всякий случай напомню, что для тестов при помощи FC-Test мы разбиваем исследуемый диск на два логических диска равного объёма (пополам), и тесты копирования проводим как внутри 1-го логического диска, так и с первого логического диска на второй.
Сначала будем копировать заранее созданный на диске набор файлов в тот же логический диск.
При беглом взгляде на всё это безобразие хочется отметить несколько интересных моментов. Во-первых, контроллер SiliconImage выигрывает этот режим вчистую. Он показал лучшую скорость при копировании всех наборов файлов!
Во-вторых, WB-кэширование при копировании, пожалуй, оправдывает себя. Ну и, в-третьих, ATA-диск с 8МБ кэш-буфером, наконец-то, продемонстрировал свою ментальную мощь. Обратите внимание на огромный разрыв в быстродействии 120ГБ дисков с разным объёмом кэш-буфера - на мой взгляд это убедительное доказательство "небесполезности" кэш-буфера большого размера.
При копировании набора файлов с одного логического диска на другой (при этом головки "бегают" дальше, нежели в предыдущем тесте) картина, в общем-то, не меняется. Ну разве что несколько улучшились результаты SATA-диска на контроллере Promise 150 TX2 Plus (WB).
И вновь ATA-диск с 8МБ кэш-буфером намного быстрее своего "братца" с меньшим размером кэш-буфера.
Попробуем сменить файловую систему - это может сильно повлиять на расстановку сил, так как под NTFS уменьшается размер кластера, и это может сказаться на результатах процессорозависимых контроллеров.
NTFS Начнём, как и раньше, с записи:
На первый взгляд - никаких изменений. Точно так же, как и под FAT32 лучшую скорость показал SATA-диск на контроллере Promise SATA 150 TX2 Plus (WB). Причём, при работе с мелкими файлами его преимущество стало ощутимым!
При чтении картина полностью аналогична той, что мы видели при тестах под FAT32. Даже комментировать нечего. :)
Терпите, казаки, всего две диаграммы осталось!
Итак, при копировании внутри раздела более высокую скорость показали SATA-диски на контроллере SiliconImage. Контроллер Promise SATA 150 TX2 Plus (WB) выходит вперёд только при работе с мелкими файлами.
Если сравнить скорость копирования файлов SATA и ATA-дисков, то достойное сопротивление дискам SATA может оказать только модель ST3120024A c 8МБ кэш-буфером. А обычные ATA-диски (с 2МБ-буфером), увы и ах, в полтора раза медленнее...
При копировании файлов на второй логический диск WB-кэширование снова помогает контроллеру Promise одолеть контроллер SiliconImage в трёх из пяти паттернов.
Выводы
Так как в статье, по сути, рассматривалось два вопроса: - "Быстрее ли SATA-диски своих ATA-предков" и "Какой SATA-контроллер обеспечивает лучшую скорость", то и выводы будут состоять из двух блоков.
Первое знакомство с интерфейсом SATA и продуктами, его поддерживающими, прошло на удивление буднично. Всё железо работало на удивление стабильно и быстро. Так что долгое ожидание первых SATA-продуктов, пожалуй, пошло им на пользу - к покупателям придут не бета-версии дисков и контроллеров, а многократно проверенные продукты (по последним сведениям в продажу поступили диски Seagate Barracuda SATA V с firmware 3.01).
И вот эта беспроблемность очень важна при смене поколений устройств. Если на этапе внедрения продукта с ним возникнут какие-то проблемы, то пугливые и консервативные пользователи остерегутся покупать новый продукт. А если нет спроса, то и насаждать предложение ни один из производителей не рискнёт (компания Интел - исключение, так как она фактический монополист рынка)...
Хвала компании Seagate, которая первой рискнула войти в эту воду и, как Вы могли убедиться, сумела не только не подмочить свою репутацию, но и первым же выстрелом поразить самый центр мишени.
Диски с интерфейсом SATA получились у Seagate очень удачными - они явно превзошли своих предков по быстродействию и вряд ли стоят намного дороже при производстве. Конечно, мы должны отдавать себе отчёт в том, что это первые диски "освоившие" новую шину, и что они являются в определённом смысле "переходными". Но и это решение продемонстрировало нам, что скоростная шина не просто нужна, а необходима современным винчестерам. Что уж говорить о дисках следующего поколения, с поддержкой native command queuing и прочих возможностей, заложенных в Serial ATA.
Отдельного разговора заслуживают и контроллеры SATA. В этом обзоре мы познакомились с двумя контроллерами SATA, которые, по всей видимости, получат в ближайшее время самое широкое распространение. Производители этих контроллеров давно и хорошо нам известны - это компании Promise Technology и компания SiliconImage. Продукты этих компаний, которые мы рассматривали, имеют свои плюсы и минусы, но, в целом, они оба заслуживают внимания со стороны пользователей.
Контроллер SiliconImage показал неплохую скорость по всем тестам, но лучше всего ему удаются "десктопные" приложения. Отдельного упоминания заслуживают стабильно высокие результаты в тестах копирования.
Контроллер Promise, наоборот, как ни старался, но не смог скрыть своё серверное происхождение. Поэтому, наверное, оптимизации под Winbench и не делалось... Однако за счёт интереснейших технологий и весьма любопытных драйверов контроллер Promise SATA150 TX2 Plus выступил очень уверенно, и если одна из оптимизаций не срабатывала, другая неизменно работала отлично. Единственное, что омрачает моё впечатление от тестирования контроллеров Promise, так это понимание того, что моя тестовая платформа стала уже слишком слабой для современных контроллеров и дисков. Придётся апгрейдить. :)
Ну и напоследок, не могу не сказать, что совершенно не оправдались мои сомнения в более низкой скорости SATA-контроллера Promise SATA 150 TX2 Plus из-за того, что в нём применяются конвертеры ATA<->SATA от Marvel. Судя по полученным результатам, наличие интегрированных в чип конвертеров не сказалось ни на average access time, ни на скорости контроллера в любом из тестов.
Теперь о глобальном... Первая песчинка упала с вершины бархана. Своим падением она неминуемо вызовет лавинный эффект, и скоро мы просто не будем знать, куда деваться от обилия SATA-устройств. Хорошо ли это? А, собственно, что в этом плохого? Никаких отрицательных свойств у SATA-дисков пока не выявлено, в эксплуатации они ничем не сложнее ATA-дисков. Цена SATA-дисков, которая на текущий момент немного завышена, очень скоро опустится на приемлемый для большинства покупателей уровень, и я категорически рекомендую всем, кто будет собирать новый компьютер или апгрейдить старый, не ошибиться при выборе интерфейса дисковой подсистемы. И да пребудет с Вами SATA! :)
Благодарности
Bis dat, qui cito dat
(вдвойне дает тот, кто даст быстро)
Сердечно благодарю компанию
Seagate за предоставленный на тестирование диск Seagate Barracuda SATA V, компанию
Promise Technology за предоставленные контроллеры SATA 150 TX2 Plus и SATA 150 TX4 и компанию
SiliconImage за предоставленный контроллер SiI CP3112SATA150 и диск Barracuda SATA V 80ГБ.