Введение
В этой статье мы рассмотрим производительность контроллера Promise FastTrak TX4200. Компания Promise позиционирует его как недорогое, но высокопроизводительное решение.
Контролер Promise TX4200 - поддерживает до четырёх накопителей с интерфейсом SATA и позволяет объёдинять их в массивы массивы JBOD, RAID0, RAID1, RAID10. Так же, как и рассмотренный ранее контроллер Sil3124, контроллер Promise поддерживает как TCQ (ATA Tagged Command Queuing), так и NCQ (Native Command Queuing). То есть контроллер совместим со спецификациями "Serial ATA II extensions to SATA 1.0". Из "потенциальных" слабых мест контроллера можно отметить устаревающий шинный интерфейс PCI32/66МГц. С одной стороны, это даёт совместимость с огромным количеством компьютеров, дисковая подсистема которых нуждается в увеличении скорости/ёмкости/надёжности (нужное подчеркнуть...). С другой стороны - пропускной способности шинного интерфейса может не хватить для полной утилизации скоростей современных дисков.
"Изюминкой" обзора, без лишней скромности мы считаем исследование практической пользы от поддержки контроллером технологии TCQ. Благодаря тому, что программное обеспечение контроллера Promise позволяет включить и выключить поддержку TCQ/NCQ, мы смогли провести два цикла тестов и получить результаты всех типов массива с включенной и выключенной поддержкой TCQ.
Следует отметить, что включение и выключение поддержки TCQ/NCQ действует одновременно для ВСЕХ дисков, подключенных к контроллеру, так что исследовать еще более интересные режимы нам пока не удалось. Впрочем, может оно и к лучшему. Иначе обзор вышел бы только через пол-года. :)
Итак, вот как выглядит контроллер Promise FastTrak TX4200:
Контроллер выполнен в виде низкопрофильной платы, но по умолчанию поставляется с костылём под полноформатные корпуса (костыль под low-profile поставляется в комплекте retail-версии контроллера).
Слева от микросхемы флешь-памяти мы видим ряд разъёмов, посредством которых контроллер может выводить режим работы дисков или, при совместной работе с HotSwap-корзинами SuperSwap 1100/4100, производить мониторинг температур жёстких дисков и скоростей работы вентиляторов в корзинах.
Справа, сразу за чипом PDC40519, в своеобразном вырезе находятся четыре разъёма SATA.
Методика тестирования
Тестовая система:
Корпус - Intel SC5200
Материнская плата - Intel SHG2
Процессор - 2 x Intel Xeon 2.8/400FSB
Память – 2 x 512MB DDR SDRAM PS2100 ECC Registered
Винчестер - IBM DTLA 307015
Видеокарта - onboard ATI Rage XL
Операционная система - Windows 2000 Pro SP4
Винчестеры для массивов – Raptor WD740GD
Использовались следующие версии тестовых программ:
IOMeter2003.02.15
FC-Test v1.0 bild 11
Тестирование в IOMeter проводилось на паттернах Sequential Read, Sequential Write, Database, Workstation, Fileserver и Webserver. За подробными описаниями паттернов Вы можете обратиться к нашим предыдущим материалам.
Для тестов при помощи FC-Test массив разбивался на два логических диска по 32ГБ.
Управление режимом работы дисков в части поддержки TCQ осуществлялось при помощи программы PAM (Promise Array Management). Отложенная запись у дисков всегда была разрешена.
Результаты тестов
IOMeter: паттерн Database По сложившейся традиции, первым открывает нашу тестовую программу паттерн Database. В этом паттерне мы проверяем способность дисков работать со смешанным потоком запросов на чтение и запись блоков данных объёмом 8КБ со случайным адресом. Изменяя соотношение запросов на чтение и запись, мы можем выявить качество сортировки запросов на чтение и запись.
Начнём с результатов одиночного диска. Сначала приведём таблицу результатов:
А теперь, для большей наглядности, оценим эффективность TCQ, как соотношение результатов массива с включённой поддержкой TCQ к результату массива с выключенной поддержкой TCQ.
Очевидно, что если соотношение больше единицы, то можно говорить о "пользе" от TCQ. Если же результат деления двух результатов меньше единицы, то... Ну, вы понимаете... :)
Налицо некоторая система... Включение поддержки TCQ приводит к уменьшению результатов массива при малых нагрузках в режимах с преобладанием запросов на чтение. По всей видимости, причина таких проблем - драйвера контроллера, так как объяснить 15-ти процентное падение скорости работы ничем другим - невозможно. В то же время, на RamdomRead-запросах и максимальной нагрузке контроллер демонстрирует 35-ти процентный рост быстродействия!
Построим графики по трем нагрузкам (1, 16 и 256 исходящих запросов).
Очевидно, что при малых нагрузках реализация поддержки TCQ сказывается на быстродействии массива неоднозначно. Наибольший прирост в скорости, с включенным TCQ, наблюдается на максимальной нагрузке, причем основной выигрыш приходится на "чистые" запросы чтения или записи, а на смешанных запросах увеличения скорости почти нет.
Любопытно, но скорость массива в режиме RandomWrite одинакова для нагрузок 1 и 16 запросов и для режима TCQ ON (т.е. поддержка TCQ - включена) и для режима TCQ OFF.
Рассмотрим, какие будут результаты при создании массива RAID0 из двух дисков.
Включенное TCQ увеличивает скорость только на операциях чтения, да и то только при больших нагрузках.
При нагрузке в один запрос включение поддержки TCQ приводит к "просаживанию" скорости массива в смешанных режимах.
Построим RAID1 (зеркало).
Для этого массива падение скорости при активации TCQ, увы, также наблюдается. Причём "площадь" клеток, окрашенных в красный цвет, достигла, пожалуй, максимума. Прирост скорости заметен только при работе с запросами на чтении.
Казалось бы, увеличение количества дисков в массиве должно привести к уменьшению "средней" нагрузки на каждый диск (ведь та нагрузка, что бы подаём на массив, в соответствии с теорией случайного числа равномерно делится между всеми дисками массива) и, следовательно, к ухудшению результатов массива при включённой поддержке TCQ (так как увеличивается диапазон "неудобных" нагрузок"). И, действительно, некоторое уменьшение результатов при максимальных нагрузках наблюдается. Однако, при всём при этом величина потерь массива при малых нагрузках уменьшается! Такое впечатление, что снижение темпа нагрузок помогает дискам лучше справляться с работой...
Посмотрим результаты массива 4HDD-RAID0
Кажется, что массив RAID0 независимо от количества дисков одинаково реагирует на включение режима TCQ: хороший прирост скорости на чтении при большой очереди исходящих запросов, но на записи почти всегда проигрывает режиму TCQ ON.
Рассмотрим самый сложный для контролера массив RAID10
Похоже, этот режим оказался слишком труден для контроллера, таблица эффективности почти вся закрашена красным цветом. Однако не надо делать скоропалительных выводов, ведь это только первый паттерн, а у нас впереди еще много интересных тестов.
IOMeter: паттерны Sequential Read & Write На диск при помощи программы IOMeter подаётся поток запросов на чтение/запись с глубиной очереди команд, равной четырём. Раз в минуту в тесте меняется размер блока данных, так что после окончания теста мы получаем зависимость скорости линейного чтения (или записи) от размера блока данных.
Таблица IOMeter: Sequential Read.
Так же, как и в предыдущем паттерне, составим таблицу эффективности.
Построим графики сначала для массивов RAID0, а затем для остальных массивов.
Для массивов RAOD0 включение поддержки TCQ не принесло видимой пользы, а вот на более сложном массиве RAID10 включение режима TCQ привело к сильному падению скорости чтения. Очевидно, драйвера контроллера нуждаются в дополнительной доводке...
Посмотрим, что будет при записи (
Таблица IOMeter: Sequential Write), составим таблицу эффективности.
а затем, как и в предыдущем случае построим графики.

Налицо проблемы со скоростью записи на массивы из большого количества дисков. И, если для массива из трёх дисков это выражается только в снижении масштабируемости (скорость записи на массив из трёх дисков не в полтора раза выше, чем на массив из двух дисков), то на четырёх дисковом массиве контроллер "ломается". Причём, скорость записи категорически низкая вне зависимости от режима работы дисков.

Для "сложных" массивов RAID1 и RAID10 скорость записи колеблется вокруг показателей одиночного диска. Что же, надёжность - прежде всего. :)
Далее рассмотрим производительность контроллера в паттернах, эмулирующих работу дисковой подсистемы сервера.
IOMeter: Fileserver & WebserverПроведём сравнение дисков по усреднённому значению их производительности (среднее арифметическое скорости диска при четырёх вариантах нагрузки).
На этот раз включение режима TCQ положительно отразилось на результатах паттерна. Во всех случаях средняя скорость увеличилась, особенно это заметно для массивов RAID0. Очевидно, что небольшой проигрыш на малых нагрузках при таком способе усреднения компенсируется результатами контроллера под большими нагрузками.
Посмотрим, какие результаты покажет контроллер в паттерне Webserver.
В таблице эффективности красного цвета стало немного больше. Посмотрим на диаграмму.
А она прямо таки радует глаз. Включение режима TCQ вновь самым положительным образом сказывается на быстродействии массивов.
IOMeter: Workstation Этот паттерн характеризуется большой долей запросов на запись, и это должно изменить расстановку сил.
Так и есть, преимущество использования новой технологии проявляется на массивах JBOD и RAID0. На массивах, использующих зеркалирование, наблюдается некоторое снижение производительности.
Уменьшим адресное пространство диска до 32GB и повторим тест.
IOMeter: Workstation32Общая картина не изменилась, несмотря на то, что на больших нагрузках эффективность TCQ опять приблизилась к 30 процентам. Вновь массивы JBOD и RAID0 демонстрируют симпатию к включению TCQ, а массивы RAID1 и RAID10, наоборот, испытывают в таком режиме, так сказать, дискомфорт...
Этим тестом мы закончили с синтетическими паттернами для IOMeter и можем перейти ко второму тесту, а именно FileCopy Test.
FC-Test Мы применяем FC-Test по нашей стандартной методике - на диске создавалось два логических диска по 32 GB, и они размечались сначала в NTFS и, затем, в FAT32. На первом логическом диске создавался набор файлов, затем этот набор файлов читался с диска, затем набор файлов копировался в директорию, созданную на первом логическом диске (т.е. производилось копирование внутри одного раздела), и завершало цикл тестов копирование первого набора файлов на второй логический диск.
Между каждым тестом проводится перезагрузка тестовой системы, тем самым мы исключаем влияние кэша операционной системы на результаты тестов. Всего мы используем пять наборов файлов:
Install - 414 файлов общим объёмом 575МБ;
ISO - три файла общим объёмом 1.6ГБ;
MP3 - 271 файл общим объёмом 1ГБ;
Programs - 8504 файла общим объёмом 1.4ГБ;
Windows - 9006 файлов общим объёмом 1.06ГБ.
Посмотрим, какие получились результаты. Начнем с файловой системы NTFS.
Из-за большого количества данных будем рассматривать результаты по каждому действию для каждого набора файлов. Первым действием мы создаем на диске набор файлов.
Посмотрим на таблицу эффективности.
Синего цвета довольно мало в основном внизу таблице.
Посмотрим на диаграммы.
Похоже, режим TCQ оказался плохим помощником при создании файлов. Прирост скорости заметен только при работе с мелкими файлами и на массивах из большого количества дисков. И сдаётся нам, что в этом приросте никакой заслуги TCQ нет.
Посмотрим, что произойдет при чтении файлов.
Из таблицы эффективности сразу видно, что режим TCQ значительно чаще уменьшает скорость чтения, нежели её увеличивает.
Рассмотрим результаты подробнее при помощи диаграмм по каждому паттерну:
Прирост скорости от включения TCQ наблюдается только для массива RAID10, что, кстати, противоречит полученным нами ранее результатам (для паттерна SеquentialRead). И, конечно, необходимо отметить некоторый всплеск быстродействия для массива RAID0 из двух дисков при работе с файлами из паттерна Install.
Посмотрим, как влияет режим TCQ на скорость копирования файлов.
Похоже, в таблице эффективности красного цвета немного поубавилось. Странно, ведь согласно предыдущим результатам именно смешанные режимы давались контроллеру хуже всего.
Рассмотрим диаграммы по каждому набору файлов.
Явная польза от TCQ наблюдается только для массивов RAID1 и RAID10. Причём, для массива RAID1 прирост быстродействия при работе с большими файлами составил умопомрачительную цифру в 56 процентов!
Посмотрим, как изменится соотношение сил при копировании файлов на другой логический диск.
Похоже, у нас появилось два "любимчика". Во-первых, паттерн "Install" выполнился на всех типах массива с положительным сальдо и, во-вторых, на массиве RAID1 при работе со всем паттернами также наблюдается польза от применения TCQ. Причём, при работе с большими файлами эффективность TCQ достигла 90 процентов! А это означает, что копирование большого файла на массиве с включённой поддержкой TCQ идёт почти до двух раз быстрее!
Результаты, показанные контролером на файловой системе FAT32, мало чем отличаются от результатов показанных на NTFS, поэтому обсуждать их также подробно не считаем целесообразным. С таблицами и графиками результатов в файловой системе FAT32 можно ознакомится
здесь.
Что же, тесты на копирование файлов выявили некоторые закономерности.
Включение поддержки TCQ мало повлияло на скорость чтения файлов (исключение - RAID10), и отрицательно повлияло на запись (исключение - RAID10). Влияние поддержки TCQ на скорость копирования файлов очень сильно зависит от типа массива. Массивы, использующие зеркалирование, получили существенную пользу от активации поддержки TCQ. Массивы же RAID0 и JBOD, наоборот, немного снижают скорость при активации TCQ.
Выводы
Контроллер, в целом, показал себя неплохо. Но, всё же, справедливости ради, стоит отметить, что использование шины PCI32/66МГц не позволило этому контроллеру в тестах на скорость последовательного чтения/записи показать высокую скорость при работе с многодисковыми массивами. Уж больно у нас диски стали быстрые. :)
По результатам тестирования технология Tagged Command Queuing показала себя c лучшей стороны только на больших нагрузках и на сложных массивах типа RAID10 и RAID1.
К сожалению, сейчас мы не сможем назвать причину столь "неоднозначного" поведения контроллера - диски с поддержкой TCQ выпускает только одна компания...
Возможно, имеет смысл провести тесты на дисках с поддержкой NCQ. Как Вы думаете?