Сегментирование кэш-памяти и быстродействие жестких дисков


Часть 1: Performance Mode для Seagate Cheetah 15K.4 и Cheetah 10K.7.

Недавно мы оттестировали новые модели SCSI-дисков Seagate Cheetah со скоростью вращения 10 000 и 15 000 об./мин — Cheetah 10K.7 и Cheetah 15K.4. Испытания показали, что даже с текущими серийными версиями firmware эти диски имеют достаточно скромную производительность, уступающую не только производительности прямых аналогов от Maxtor (Atlas 10K V и Atlas 15K II соответственно), но даже своих предшественников с соответствующей скоростью вращения. И если при серверных нагрузках новые диски Seagate Cheetah вели себя еще более или менее приемлемо (в плане быстродействия), то в приложениях более потребительского характера за редким исключением их скорость была неприлично скромна.

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

Дело в том, что бесплатная и доступная для свободного скачивания с сайта производителя утилита Seagate SeaTools Enterprise

позволяет не только получать подробную информацию об установленных в системе SCSI дисках,

проводить их необходимую диагностику и даже обновлять firmware

(если такое оказалось в ваших руках ;)),

но также осуществлять над SCSI-дисками Seagate некоторые дополнительные «продвинутые» (Advanced) операции: включать и выключать кэширование чтения и записи буфером диска, переключаться между тремя (!) режимами поиска в целях оптимизировать потребление/нагрев и шумность работы накопителей и так далее. Но наиболее интересной для нас в текущем контексте является возможность переключать новейшие SCSI-диски Seagate между двумя разными моделями (политиками) кэширования — Desktop Mode и Server Mode. Этот пункт в меню SeaTools носит название Performance Mode (PM) и может принимать два значения — On (Desktop Mode) и Off (Server Mode).

Отличия между этими двумя режимами чисто программные — в случае Desktop Mode кэш-память жесткого диска разбивается на фиксированное число сегментов постоянного (одинакового) объема и далее они используются для кэширования обращений при чтении и записи. Причем, в отдельном пункте меню пользователь даже может сам назначать количество сегментов (управлять сегментированием кэша): например, вместо дефолтных 32 сегментов проставить другое значение (при этом объем каждого сегмента пропорционально уменьшится).

В случае Server Mode сегменты буфера (кэша диска) могут динамически (пере)назначаться, меняя при этом свой размер и количество. Микропроцессор (и микропрограмма) диска сами динамически оптимизируют количество (и емкость) сегментов кэш-памяти в зависимости от поступающих для исполнения на диск команд.

SCSI-диски Seagate поставляются с предустановкой PM=Off (то есть установленные в Server Mode) и, честно говоря, мне непонятно, почему разработчики в данном случае использовали такую терминологию — ведь, по идее, название «перформанс мода» больше подходит для серверных применений, тем более если она еще и более интеллектуальна (обеспечивает динамическую сегментацию), то есть преследует цель повысить таким образом производительность диска. Возможно, разработчики Seagate создав эту фичу и сами поняли, что простейшая фиксированная сегментация пока в среднем более эффективна в текущих приложениях и отразили это в данном названии? :) Но тогда напрашивается вывод, что интеллектуальная динамическая сегментация, предлагаемая в данном случае Seagate, не доведена как следует до ума. Впрочем, это я уже забегаю вперед и начинаю комментировать результаты тестов… :)

Так или иначе, но для тех пользователей, кто предпочитает использовать SCSI-диски для решения типичных задач настольного компьютера, существует возможность переключить этот диск в более характерный для таких применений режим кэширования «Desktop» (из дефолтного «Server»).

А мы в данной статье, состоящей из двух частей, постараемся выяснить, насколько велики различия в производительности SCSI-дисков Seagate последнего поколения при использовании этих двух режимов кэширования (Desktop и Server, первая часть), а на закуску (то есть во второй части) исследуем также влияние количества сегментов в режиме Desktop на быстродействие диска с 8-мегабайтным буфером — мы будем использовать как дефолтные 32 сегмента, так и 16, 64 или 128 сегментов. Причем, зная общий объем буфера диска, можно достаточно легко оценить (если пренебречь служебной областью и областью, занимаемой firmware диска) размер сегментов в каждом из этих случаев.

Данное исследование имеет не только «чисто академический» характер (как может показаться менее пытливому читателю), но, напротив, представляет немалый практический интерес. Во-первых, для, собственно, дисков Seagate Cheetah — позволяя пользователю выбрать наиболее подходящий ему режим эксплуатации этих накопителей. А во-вторых, влияние количества и емкости сегментов на производительность в тех или иных приложениях широко используется и при создании обычных настольных ATA-дисков, а они, как мы знаем, пока в большинстве своем имеют как раз буфер 8 Мбайт, как и у исследуемых нами объектов. Поэтому выявив закономерности влияния сегментации для «Чит», мы можем распространить их и на настольные накопители.

 

Участники испытаний

В данном тестировании участвовали две модели дисков Seagate: Cheetah 15K.4 (модель ST3146854LW емкостью 147 Гбайт) и Cheetah 10K.7 (модель ST373207LC емкостью 73 Гбайт). Для сравнения мы использовали свежие модели Maxtor Atlas 10K V и Atlas 15K II, а также диск Seagate Cheetah 10K.6 (в дефолтных режимах работы). Подробную информацию о данных накопителях вы можете найти по соответствующим линкам.

 

Методика тестирования скоростных показателей

Для тестов жестких дисков применялся стенд в составе:

  1. Процессор Intel Pentium 4 3.0C
  2. Материнская плата Gigabyte GA-8KNXP Ultra-64 на чипсете Intel E7210 (i875P с южным мостом Hance Rapids 6300ESB с шиной PCI-X)
  3. Системная память 2×256 Мбайт DDR400 (тайминги 2,5-3-3-6)
  4. Контроллер Ultra320 SCSI Adaptec AIC-7902B на шине PCI64
  5. Системный жесткий диск Maxtor 6E040L0
  6. Блок питания Zalman ZM400A-APF, 400 ватт
  7. Корпус Arbyte YY-W201BK-A

Другие детали по методике тестирования совпадают с описанными ранее, например, здесь. Диски Seagate Cheetah 15K.4 и 10K.7 тестировались с версией firmware 0003.

 

Результаты тестов физических параметров

Анализировать абсолютные показатели и графики скорости линейного чтения в данном случае смысла нет (они идентичны для разных мод сегментирования), поэтому переходим сразу к скорости работы интерфейса Ultra320 SCSI. Диски Seagate здесь на высоте, заметно опережая Maxtor Atlas. Различия между Server и Desktop (32 сегмента) модами здесь тоже практически отсутствуют.

А вот по измеренному среднему времени доступа начинаются сюрпризы: использование Destop Mode существенно увеличивает среднее время доступа при чтении для обоих дисков Seagate — на 0,4-0,5 мс для Cheetah 15K.4 и на 0,8 мс для Cheetah 10K.7. То есть примерно на 10% для каждого! Во второй части мы попробуем разобраться, почему так происходит, а пока лишь констатируем сей не очень приятный для мощных SCSI-накопителей факт. Впрочем, как мы увидим ниже, это отнюдь не мешает им повысить свою производительность во многих приложениях при использовании Desktop Mode. Таким образом, динамическое сегментирование Seagate приносит явные дивиденды в плане скорости поиска.

Об эффективности работы алгоритмов отложенной записи firmware диска и кэширования записываемых данных в буфере накопителя можно попытаться судить по тому, как падает среднее, измеренное операционной системой, время доступа при записи относительно чтения при включенном write-back кэшировании накопителя. Есть даже мнение, что такой тест позволяет судить об уровне сегментирования кэш-памяти диска — чем больше сегментов, тем меньше будет эффективное среднее время при записи.

Для выяснения этого мы используем результаты теста C'T H2benchW. (Разумеется, не следует думать, что average write access time на этой диаграмме реально отражает данную физическую характеристику накопителей! Это лишь некий программно измеряемый при помощи теста C'T H2benchW параметр, по которому можно судить об эффективности кэширования записи в буфере диска. Реальное заявленное производителем среднее время доступа при записи для Cheetah 10K.7, например, составляет 5,3+3,0=8,3 мс)

Оказывается, что если при чтении мы наблюдали заметный рост времени доступа, то при записи изменений практически нет. В общем, это вполне предсказуемо, если исходить из того, что измеряемый параметр при записи отражает не физическую характеристику накопителя, а эффективность кэширования. Но с другой стороны, это говорит о том, что в рамках данной модели обращений к диску в режиме Server Mоde не происходит заметных изменений сегментирования кэш-памяти по сравнению с постоянными «десктопными» 32 сегментами. В целом исследуемые диски Seagate и в Desktop Mode уступают по этим двум параметрам как конкурентам от Maxtor, так и предшественнице Cheetah 10K.6. 

 

Быстродействие в приложениях

Переходим к тестам производительности в приложениях. И первым делом, попробуем выяснить, как хорошо диски оптимизированы для многопотоковой работы (тесты в программе NBench 2.4, где файлы размером 100 Мбайт записываются на диск и читаются с него несколькими одновременными потоками).

Эффективность алгоритмов многопотоковой отложенной записи жестких дисков при работе операционной системы с файлами в данном случае практически не зависит от используемого режима сегментирования кэша дисков Seagate (а практическая идентичность показания лишний раз свидетельствует в пользу надежности использования данного теста ;)). К сожалению, снова приходится констатировать сильное отставание последних моделей Seagate от конкурентов и даже некоторых предшественников.

При многопотоковом чтении, однако, ситуация для дисков Seagate кардинально меняется: налицо великолепная (иного слова я просто не подберу для более чем сорокапроцентного улучшения!) оптимизация динамического сегментирования кэш-памяти под подобные задачи. И снова возникает резонный вопрос — тот ли режим назвали Performance? ;) Лидерство новых дисков Seagate здесь не вызывает никаких сомнений.

Теперь о WinBench Disk WinMark 99. По идее, Desktop Mode именно здесь должна показать свои преимущества над Server Mode. И мы не ошиблись — Cheetah 10K.7 заметно (до 30%) прибавила в скорости от использования Performance Mode, хотя для Cheetah 15K.4 прибавка оказалась гомеопатической — лишь полтора-три процента.

Впрочем, это касается только офисной (Business) производительности, тогда как в профессиональной (High-End) производительности теста WinBench 99 картина немного хуже — Cheetah 10K.7 прибавила лишь около 20%, а Cheetah 15K.4 даже напротив — уступила несколько процентов в Performance Mode. В целом же можно констатировать, что постоянное сегментирование кэш-памяти хотя и подняло скорость последнему SCSI-десятитысячнику Seagate, но все же не помогло диску Cheetah 10K.7 догнать в этих тестах свою предшественницу Cheetah 10K.6.

Более свежие комплексные «трековые» тесты оценки «настольной» производительности дисков в пакетах PCMakr04 и C'T H2BenchW в целом демонстрируют похожие на WinBench 99 закономерности.

В Futuremark PCMark04 при использовании Desktop Mode Cheetah 10K.7 прибавила 34%, но продолжает катастрофически отставать от остальных фигурантов.

И хотя в H2benchW прирост ее производительности оказался еще больше — почти 60% (!) — догнать Читу 10K.6 она все же не в состоянии. :( Что же касается Cheetah 15K.4, то использование Desktop Mоde в обоих этих тестах приносит ей крайне невысокие дивиденды (от 1 до 6%) и общую ситуацию практически не меняет.

По скорости работы дисков с временным файлом программы Adobe Photoshop мы наблюдаем полную индифферентность Cheetah 15K.4 к изменению политики сегментирования кэш-памяти, а Cheetah 10K.7 ускоряется всего на 6% при использовании Desktop Mode с 32-мя постоянными сегментами. В целом по комплексу «настольных» тестов можно констатировать, что применение Desktop Mode для Cheetah 15K.4 лишено особого смысла, а с точки зрения многопотокового чтения даже противопоказано (Server Mode в последнем случае существенно эффективнее), хотя для Cheetah 10K.7 использование Desktop Mode, напротив, может принести определенную и весьма заметную пользу (опять же — кроме многопотокового чтения).

 

Тесты в Intel Iometer

Переходим к задачам, более характерным для профилей использования SCSI-накопителей — работе различных серверов (DataBase, File Server, Web Server) и рабочей станции (Workstation) по соответствующим паттернам в программе Intel IOmeter версии 2003.5.10.

Во всех трех серверных паттернах Cheetah 15K.4 работает чуточку быстрее, если используется динамическое сегментирование кэша (Server Mode), хотя разницу с Desktop Mode здесь никак нельзя назвать существенной (единицы процентов). Что и подтверждается на усредненной диаграмме (см. ниже).

С другой стороны, для Cheetah 10K.7 в серверных паттернах использование Server Mode ведет к заметному ускорению работы (в среднем — на 13%).

Причем преимущество Server Mode над Desktop Mode в данном случае почти не зависит от типа серверного паттерна и глубины очереди запросов.

Впрочем, все равно Cheetah 10K.7 отстает здесь от своей предшественницы и, тем более, от Maxtor Atlas 10K V.

По итогам тестов на серверных нагрузках можно заключить, что использование Server Mode предпочтительно для обоих дисков Seagate (и особенно, для Cheetah 10K.7), в случае пятнадцатитысячника особой разницы с Desktop Mode, как и во многих настольных паттернах, мы здесь не наблюдаем.

Что касается паттерна «рабочая станция», тот здесь картина немного меняется — для Cheetah 15K.4 явно предпочтительнее использование Server Mode (особенно на большой глубине очереди), а для Cheetah 10K.7 почти никакой разницы от использования того или иного режима сегментирования кэш-памяти мы не наблюдаем.

И оба новых диска Seagate не способны «поправить» свое положение, используя ту или иную моду сегментирования буфера

Теперь — паттерны случайного чтения и записи больших и мелких файлов.

При случайном чтении крупных файлов для Cheetah 15K.4 чуть более предпочтительно использование Server Mode, тогда как для Cheetah 10K.7, напротив, двукратное (!!!) преимущество в быстродействии обеспечивает именно Desktop Mode! И 10K.7, наконец-то, обходит свою предшественницу 10K.6 и конкурента от Maxtor. Интересно, что этот результат прямо противоположен явному превосходству Server Mode при многопотоковом чтении, но на то эти задачи и различны — одна использует чтение по случайным адресам, а другая читает несколько одновременных последовательных потоков.

При случайной записи крупных файлов, однако, разницы между модами почти нет — лишь для Cheetah 10K.7 «настольный» режим немного предпочтительнее на большой очереди.

Чтение мелких файлов по случайным адресам в чем-то сродни измерению среднего времени доступа при чтении, а в нем, как мы помним, заметно лучше вела себя Server Mode. И действительно, для Cheetah 15K.4 наблюдается аналогичная картина — Server Mode явно лучше десктопной. Однако на этом сходство заканчивается и для Cheetah 10K.7, напротив, (как и при чтении крупных файлов) почти двукратное преимущество имеет Desktop Mode! Хотя в этот раз она и не позволяет диску догнать конкурентов. Невольно напрашивается вывод, что в данном случае программисты Seagate упустили что-то важное при написании firmware для Cheetah 10K.7, позволив серверной моде (то есть динамическому сегментированию буфера) показать столь неважные результаты, хотя все предпосылки для лучшей работы у нее были. Другой вывод — динамическая сегментация у Cheetah 15K.4 и 10K.7, видимо, имеет какие-то достаточно существенные различия.

Что касается записи мелких файлов по случайным адресам в пределах всего диска, то здесь картина сходна с таковой для чтения мелких файлов. С той разницей, что для Cheetah 15K.4 оба режима практически равноценны, а для ее младшей сестрицы отрыв Desktop Mode от серверной не столь велик.

Копирование крупных файлов — вотчина Maxtor Atlas 10K V. Использование Desktop Mode безразлично для пятнадцатитысячника Seagate и немного полезно для десятитысячника, хотя Читу 10K.6 он по-прежнему догнать не способен.

Примерно то же — при копировании мелких файлов, хотя здесь уже на больших очередях запросов отрыв Desktop Mode от серверной увеличивается.

По результатам геометрического усреднения данных для случайного чтения, записи и копирования крупных и мелких файлов получаем, что повторяется картина, отмеченная нами ранее в десктопных «трековых» тестах, а также в WinBench Disk WinMark 99 — новая Seagate Cheetah 10K.7 способна выиграть в среднем до 30% быстродействия при использовании Desktop Mode вместо Server Mode, но даже это не позволяет ей догнать по производительности свою предшественницу Cheetah 10K.6. Что касается Cheetah 15K.4, то здесь оба режима сегментирования буфера дают примерно одинаковые результаты, не позволяя накопителю заметно прибавить в скорости.

При имитации дефрагментации мы наблюдаем примерное повторение этой картины и очень слабые результаты для Seagate Cheetah 10K.7, тогда как диски Maxtor Atlas лидируют со значительным отрывом.

Наконец, в паттерне потоковых чтения-записи (50/50) крупными и мелкими блоками картина в целом та же: Desktop Mоde весьма полезна для Cheetah 10K.7 и практически бесполезна для Cheetah 15K.4.

 

Промежуточные выводы

Подытоживая тесты первой части этого обзора, хочется отметить, что использование новых накопителей Seagate Cheetah в режиме «Desktop» (при фиксированном сегментировании по умолчанию на 32 сегмента) вместо дефолтного «Server» с динамическим сегментированием способно немного поднять производительность дисков в ряде задач, более характерных для настольного компьютера. Причем, эта прибавка порой может достигать 30-100% (!) в зависимости от типа задачи и модели диска, хотя в среднем она оценивается величиной 30%, что, согласитесь, тоже неплохо. Среди таких задач — рутинная работа настольного ПК (тесты WinBench, PCmark, H2bench), чтение и копирование файлов, дефрагментация. При этом в серверных приложениях производительность накопителей почти не падает (если и падает, то незначительно). Впрочем, заметный выигрыш от использования Desktop Mode мы смогли наблюдать только на диске Cheetah 10K.7, тогда как ее старшей сестрице Cheetah 15K.4 оказалось почти все равно, в каком из режимов работать над настольными приложениями.

Среди тех задач, где явную фору имеют более прогрессивные алгоритмы динамической сегментации кэш-памяти накопителя (а я бы именно ее назвал «перформанс модой») — многопотоковое чтение, множественные случайные обращения к диску (чтение очень мелких файлов, где важно среднее время поиска), серверные приложения. И именно здесь Cheetah 15K.4 проявила бОльшую заинтересованность, чем при «настольной» работе.

Но к сожалению, даже эта «программная фича» Seagate (Performance Mode) оказалась неспособна поднять весьма скромную производительность новых SCSI-дисков Seagate до уровня конкурентов (в среднем по совокупности тестов, хотя в отдельных «номинациях» конкуренция все же наблюдается), а у диска Cheetah 10K.7 — хотя бы до уровня его предшественницы Cheetah 10K.6. Впрочем, напомним, что в «положительном» арсенале новых Seagate Cheetah остаются высокая надежность, раскрученная годами «высокая марка», а также весьма низкое энергопотребление-тепловыделение (а это один из реально привлекательных факторов) и более тихая (то есть малошумная) работа, чем у традиционных SCSI-десятитысячников.



Окончание читайте во второй части





Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.