HDD и SSD – единство различий (страница 4)

HDD и SSD – единство различий (страница 4)

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

Реализация тестов в разных программах при одинаковых или похожих названиях может несколько различаться, но будем ориентироваться на ‘типичные’ реализации. Итак, начнем.

Последовательное чтение

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

реклама

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

Программы, работающие через скрипты, вряд ли учитывают эти дефекты в виду своей универсальности, а по нескриптовым вообще ничего сказать нельзя — не дизассемблировать же.

Что же подразумевает данный алгоритм и что происходит в действительности?

Предполагается, что длительное последовательное чтение одним блоком чтения (скажем 4 Кбайт) вызовет в дисковом накопителе те же действия, что и чтение одного единственного блока такого размера. Если не лезть в логику работы устройства, то алгоритм работы теста верен. Но, простите, современные, да и не только современные, а банально ‘старые’, накопители уже давно обладают расширенной системой кэширования! «Расширенность» связана с различного рода группированием данных для лучшего использования. А это означает, что лезть в логику придется и, боюсь, логика неверна. Статья рассматривает работу довольно разнотипных устройств, HDD и SSD, поэтому и рассуждения будут отдельно по каждому из них.

При запросе чтения первого блока из последовательности, HDD выполнит массу действий, напрямую к чтению не относящихся — надо дождаться очереди на выполнение этой операции, потом долго, нудно и старательно передвигать позиционер до нужной дорожки. При этом в буферную память попадет некоторое количество считанных данных, которые контроллер может прочитать и сохранить ‘от нечего делать’, пока ждет нужный сектор. Увы, HDD — устройство непрямого доступа и нельзя прямо начать выполнение операции — хочешь или не хочешь, а придется ‘сидеть и ждать’, пока нужный сектор не покажется под головкой чтения. Конечно, можно применить в HDD тот же транслятор, что используется в SSD, что позволит раскидывать сектора ‘а-бы-как’, но . лучше сразу забыть про такую глупость.

Технологии HDD тем и хороши, что они просты. С момента выхода первого IDE накопителя мало что изменилось — всё та же секторная запись с однозначным соответствием номеру сектора и его расположением на диске. Революционные изменения прошли на ином уровне — в логике работы устройства, конструкционных разработках поверхности дисков и магнитных головок.

Если опустить лирику, то на момент считывания целевого сектора в буфере HDD уже содержится (точнее ‘может’, примечание переводчика) значительный фрагмент данных до данного сектора. После считывания нужного сектора HDD обязательно будет вычитывать некоторое количество секторов, даже если запроса на последующие сектора (пока) нет в очереди выполнения.

Причина и доказательство тезиса в том, что при отсутствии кэширования чтения будет теряться следующий сектор, что потребует дополнительного оборота диска (порядка 5-10 мсек) и это будет хорошо заметно по увеличению времени доступа к диску. А именно, раз этого возрастания нет – значит, все HDD выполняют кэширование чтения. На сколько вычитывает контроллер? Сложно сказать, бытует мнение, что считывается вся дорожка целиком, но у меня есть сомнение по столь ‘экстремистскому’ предположению.

Ладно, экстрим или нет, но после считывания начального блока бо́льшая часть дорожки уже находится (или, настоящее время, станет находиться) в буферной памяти контроллера.

реклама

Второй запрос блока не заставит контроллер что-то считывать, он просто возьмет данные из буферной памяти. Третий и последующие — аналогично. Конечно, размер дорожки не бесконечен (легко считается как скорость считывания данных, деленная на скорость вращения диска), порядка 1 Мб. После считывания такого объема информации будет производиться смена поверхности, что означает затраты времени на переключение головок в коммутаторе (несущественное время) или перемещение блока магнитных головок на соседнюю дорожку. После смены дорожки всё повторится снова – поиск сектора и чтение всех секторов подряд. Дополнительная задержка возникнет только на поиске сектора, в остальных случаях данные будут поступать из буферной памяти.

Итак, тест читает с диска данные с переменным размером блока, причем выполняет это сплошным потоком. Контроллер диска выбирает данные из буферной памяти. Ну и как эти процессы связаны со скоростью чтения блоком ‘какого-то’ размера? И вообще, с чтением одиночного блока? Если у вас есть другой ответ, кроме как «никак», значит я плохо объяснил или что-то упустил. Извините.

Если с HDD всё просто и понятно, то с SSD сплошной туман — в зависимости от конкретной реализации программного обеспечения может быть ‘такая’ реакция, что останется только чесать в затылке и удивляться. Но, не будем его расчесывать, лысина не украшает, давайте идти от ‘нормального’ решения.

При получении команды чтения блока контроллер выдаст запрос на получение нужной страницы. Естественно, перед этим он должен построить список требуемых страниц через транслятор и этот момент, несомненно, важен, но пока забудем.

Если используется не байт-чередование, то первые данные будут получены не ранее, чем считается первая страница. А это произойдет не ранее, чем 75 мсек (аргументы по данной цифре были выше). После чего, через небольшие интервалы времени, будут получены другие недостающие страницы для получения затребованного блока чтения из SSD. В принципе, накопительная матрица NAND довольно быстрая и выполнять кэширование чтения для контроллера нет явной необходимости. Так он делает его или нет? Попробуем разобраться.

Если посмотреть статистику по тестам SSD последовательного чтения, то для блока 4 Кбайт скорость чтения колеблется от 40 до 120 Мбайт/сек. При этом стоит сразу вспомнить, что размер страницы NAND равен 2-4 Кбайт (обещают и 8 Кбайт). Для простоты положим, что размер страницы 2 Кбайт, как в отмеченных ранее микросхемах.

При байт-чередовании априори считывается в несколько раз больше информации, чем размер страницы. Для иных режимов обязательно считается страница и, через небольшой интервал времени, вторая страница. Вычитывать дальше у контроллера задачи не стоит, ведь запрошенный объем информации он уже получил из матрицы NAND. Возьмем этот вариант и применим к нашим цифрам — для одной страницы скорость чтения 88 Мбайт/сек. Для двух страниц должно быть лишь чуть больше, порядка 95 Мбайт/сек или около того. Но, в любом случае, меньше 120 Мбайт/сек, которые получаются по тестам. Кроме того, весьма забавно требовать от контроллера SSD, чтобы он каждый раз заново начинал процедуру кэшированного чтения для каждого нового блока, особенно если эти блоки следуют один за другим.

Вообще-то, чтение файла последовательными запросами блоков (по 128 Кбайт) довольно типичная ситуация. Если надо считать файл достаточно большой величины, то Windows рассыпает запросы по 128 Кбайт. Представьте себе, как быстро бы работал SSD, если б он по каждому запросу начинал новое чтение. Напомню — для SSD «как хочешь», но нужен ‘разгон’ в чтение одной страницы, то есть 75 мсек. Вполне естественно, что SSD будет вычитывать больше данных, чем необходимо, если в его буфере запросов нет явных запросов на эти данные (в режиме AHCI). Причина банальна, старт — стоп процедуры буферизированного чтения довольно длителен по времени, поэтому его лучше делать реже. Парадокс, хоть NAND и не механическая система хранения данных, но свойства механики (инерционность) присущи и ей.

Выходит, что нет никаких проблем с пониманием цифры “120 Мбайт/сек” — SSD вычитывает гораздо больше данных, чем запрошено вначале, поэтому контроллер только первый запрос выдает со скоростью нормального (одиночного) обращения, а все последующие идут через буферную память. М-да, еще одна аналогия с HDD. И, увы, следствие то же — скорость последовательного чтения файла блоком размера N никак не связана со скоростью чтения одиночного маленького файла общим размером N.

Ранее я говорил о байт-чередовании и пропустил такой вариант при выяснении возможного присутствия кэширования чтения. С ним то, как раз очень просто — при байт-чередовании априори считывается много страниц, из которых используется только часть (по длине страницы). Значит, всегда есть упреждающее чтение на несколько страниц. Если SSD использует этот режим работы, то у него всегда есть кэширование чтения.

Но, тогда встречный вопрос — почему происходит снижение скорости чтения при уменьшении блока доступа? Всё просто, на передачу информации от контроллера до процессора уходит какое-то время. Чем длиннее канал, чем больше в нем разнородных устройств и интерфейсов, тем дольше будут перемещаться данные. Обычно, у встроенных в южный мост контроллеров наименьшее время доступа. Вы хотите ускорить работу системы и устанавливаете дополнительный контроллер с расширенной функциональностью. и это неизбежно увеличит задержки. Как следствие, хоть дополнительный контроллер и «умный», но скорость чтения мелких файлов станет меньше, причем зачастую, меньше в несколько раз.

Что хотели: измерить скорость чтения файлов разного размера

Что получили: скорость чтения больших файлов (большой блок доступа) и индикацию времени задержки передачи в канале передачи данных на чтение (маленький блок доступа).

В качестве небольшого ‘домашнего задания’ попробуйте предположить, что делает SSD при запросе чтения из секторов, которые не определены, то есть в них не проводилась запись и транслятор пуст. (Ответ). Скорость около 150 Мбайт/сек – это действительные данные, а ровная полоска вверху – ‘это самое’. Поэтому тестирование SSD весьма нетривиальное действие и требует серьезной подготовки.

реклама

Последовательная запись

Алгоритм, используемый в данном тесте, повторяет рассмотренное ранее последовательное чтение, только вместо чтения блоков производится их запись.

И HDD, и SSD буферизируют записываемые данные по одной и той же причине — собрать блоки достаточно большого размера.

При редкой записи файлов небольшого размера данные складируются в буферной памяти накопителя и записываются в моменты отсутствия команд. Если объем записываемых данных больше буферной памяти, то накопитель не сможет ничего ‘отложить’, чтобы осуществить ее в момент простоя, поэтому будет вынужден записывать ‘здесь и сейчас’.

Что хотели: измерить скорость записи файлов разного размера

реклама

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

Буферизованное чтение

На накопителе данных, как правило, есть кэш-память под буферизацию данных на запись и кэширование чтения. Раз эта память есть, то можно измерить скорость работы с ней. Для чего можно или использовать специальные команды, или ‘как всегда’, просто много раз читать один и тот же блок данных — контроллер вряд ли будет считывать с носителя информации одно и то же, если это самое ‘оно’ уже считано и находится в его буферной памяти.

Старые HDD так и работали — при повторном запросе на чтение того же блока (набора секторов) только в самый первый раз данные считывались с дисков, а все последующие запросы оканчивались буферной памятью. Интересно, что современные HDD, особенно с многоядерным контроллером, SSD и устройства на интерфейсе USB крайне негативно относятся к режиму буферизованного (Burst) чтения.

Теперь, пожалуйста, задайте себе вопрос — как часто операционная система считывает один и тот же набор секторов постоянно? . Вы верите в обширный склероз с манией преследования?

реклама

Вполне очевидно, что данный режим общения с дисковыми накопителями глупость, поэтому программное обеспечение контроллера накопителя не обязано корректно обрабатывать данную несуразность. Нормальные результаты теста — хорошо, плохие — ровным счетом ничего не значат. Во втором варианте, при некотором полете фантазии, можно попробовать расшифровать методику кэширования, используемую контроллером — ведь ‘провал’ буферизированного чтения означает, что контроллер все же выполняет (или пытается выполнять) повторные операции чтения с накопителя данных и множественные запросы ему мешают, вытесняя кэширование чтения (упреждающее чтение). Но, подобные шаманские действия пока никто не предпринимал и обряд чтения сих иероглифов не описан в летописях.

Хоть тест называется ‘буферизованное чтение’, но самим буферизированным чтением является ‘последовательное чтение’ — при нём практически вся информация считывается из буферной памяти. Само же ‘буферизованное чтение’ не представляет никакого физического смысла. Ну, разве что — померить максимальную пропускную способность интерфейса при больших блоках доступа, да и то, если дисковый накопитель хоть как-то способен выполнять такой вид операций.

Что хотели: измерить скорость получения файлов разного размера из буферной памяти дискового накопителя

Что получили: если функция поддерживается, то – смотреть раздел ‘последовательное чтение’ — скорость интерфейса при больших блоках и индикацию времени задержки передачи в канале передачи данных (маленький блок доступа). Повторюсь, если функция не поддерживается, то это ровным счетом ничего не значит — ну зачем собаке пятая нога?

Буферизованная запись

реклама

Всё то же, всё так же. На дисковый накопитель высылается команда записи одного и того же блока данных. При этом контроллер просто тихо дуреет от подобного склероза операционной системы, да еще в столь запущенной форме и интенсивности.

Данный режим не встречается в нормально работающем компьютере, а потому носитель информации не обязан корректно обрабатывать такую, извините, глупость.

Старые HDD все же нормально выполняют данный вид операций, новые и SSD — как получится. А если не получится, то и не надо.

Что хотели: измерить скорость получения файлов разного размера из буферной памяти дискового накопителя

Что получили: смотреть ‘буферизированное чтение’. Глупость получили.

реклама

Скорость чтения (записи) данных

Одна из главных и самая понятная характеристика дискового накопителя — это скорость чтения и записи данных. Если с другими характеристиками много тумана (ну посудите сами, как можно быстро и понятно интерпретировать среднее время доступа к данным или время на смену дорожки), то со скоростью передачи всё просто — записываешь на диск большой файл, и он будет записан за (надо считать) времени. Можно и не считать — скорость современных дисков порядка 100 Мбайт/сек, что означает считывание (или запись) около 100 Мбайт за одну секунду (за 2 секунды 200 Мбайт, за 3 секунды 300 Мбайт и далее).

Одно ‘но’ — производительность зависит от типа дискового накопителя. Если у SSD эта характеристика зависит (смотрит на потолок) от «погоды на Марсе», то у HDD скорость, по большей мере, зависит от расположения на диске. Если это начало HDD, внешние дорожки, то скорость максимальна. По мере увеличения позиции в HDD положение магнитной головки на дисках смещается к центру, что вызывает уменьшение производительности до двух раз.

Важно здесь то, что тестовые утилиты (обычно) измеряют скорость дисковых накопителей в начале диска, где производительность максимальна. Данный прием как-то оправдан для древних времен, когда одни HDD сравнивались с другими HDD, и еще никто не слышал сокращения «SSD». В HDD применяется зонная структура, когда внешние дорожки получают большее количество более ‘быстрых’ секторов данных. По мере приближения к концу диска количество секторов на дорожке уменьшается. На диске множество зон с разной производительностью. Так вот, раз тестовые утилиты проводят измерения в самом начале диска, буквально в нулевой зоне, то некоторые производители добавляют еще одну маленькую зону в самое начало диска и задают на нее максимально-возможную производительность. Тесты покажут высокую скорость, но в реальной работе вы эту скорость не увидите — размер зоны весьма небольшой.

Итак, возьмем HDD со скоростью чтения 120 Мбайт/сек, что получается только на внешних дорожках, и сравним его с посредственным SSD со скоростью чтения 150 Мбайт/сек. Вроде бы паритет производительности? Ан нет! У HDD 120 Мбайт/сек получаются только на внешних дорожках, а на внутренних будет только 60 Мбайт/сек. Никакого «паритета» нет.

реклама

Не забывайте об этом лукавстве, когда будете сравнивать дисковые накопители разной природы. Для HDD скорее надо брать среднюю скорость, а никак не максимальную.

Случайное чтение и запись

А знаете, ничего не хочется говорить.

Для HDD данный тип тестов более-менее реален, а у SSD возможны проблемы из-за потоковости доступа. Дело в том, что контроллер адаптируется под тип нагрузки, а здесь применяется массовый поток по случайным адресам. При этом контроллер должен бы понять, что кэширование чтения вредит и отключить его. На ‘понятливость’ контроллера уходит какое-то время, поэтому результаты будут не совсем честными.

Время отклика диска

На диск отправляется поток запросов на чтение (или запись) маленьких блоков, обычно один сектор, 512 байт. Место положения данных выбирается случайно по всей поверхности носителя информации. Фактически, измеряется качество работы позиционера (HDD) или транслятора и предвыборки для SSD.

Вроде бы, тест вполне адекватный, откуда взяться проблемам? Бывают.

При случайном поиске можно каждый последующий адрес выбирать случайно, а можно ‘прыгать’ между фиксированной позицией и случайным. Лично у меня есть подозрение, что общеизвестный HD Tune применяет второй вариант, поэтому его измерения отличаются от данных других программ.

Кроме того, время доступа определяется не только скоростными характеристиками позиционера, но и принципами приближения магнитной головки на нужную дорожку. Если подвеска HDD неудачна (а классический метод крепления не самый лучший вариант), то вибрация будет вмешиваться в предполагаемые перемещения позиционера, что вызовет увеличение времени. Для SSD проблем с вибрацией нет, но зато существует зависимость между временем отклика и тем, что до этого делал привод.

Одной из важных особенностей SSD является и то, что они могут делать ‘что-то еще’. Такого не наблюдается в HDD, ведь принцип их работы весьма прост. Обычно, данный тест выполняется очень долго, чтобы как-то нивелировать систему кэширования в дисковых накопителях, и в контроллере SSD остаются только запросы на чтение (или запись) небольших секторов. Всё, что было ранее ‘выталкивается’ и игнорируется программами тестирования, как помехи от операционной системы. Но, увы, это ведь не так.

Что хотели: измерить скорость доступа к данным

Что получили: возможны разночтения в алгоритмах измерения времени доступа HDD и полностью рафинированный тест для SSD.

Многопоточные операции

Один из самых сложных вопросов. Много копий было сломано, но вопрос так и остается и на том же месте. С одной стороны, операционная система пытается загружать системные файлы в многопоточном режиме, с другой — в приложениях пользователя многопоточности нет. Ну откуда ей взяться, если любая программа работает по принципу загрузил — посчитал — записал.

Причем здесь многопоточность? Функция «загрузил» сложная по своей сути, ведь исходный файл надо расшифровать, а делать это множеством потоков крайне затруднительно. Конечно, если программа работает в пакетном режиме, то обработку каждого файла можно разнести в независимый поток, тогда множество однопоточных доступов превратиться в один многопоточный. И часто вы конвертируете картинки в пакетном режиме? … и при этом программа действительно распараллеливает выполнение множества заданий?

При множественном доступе HDD теряют производительность, сказывается инерционность позиционера. Что до SSD, то их производительность только возрастает. Причем, ускорение может быть очень-очень большим. Насколько оправдано такое тестирование для домашнего применения? . лично я сомневаюсь.

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

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

Размер блока доступа

И по этому вопросу много мифов. Ну, добавим свои.

В качестве инструмента я использовал HAB, поэтому не могу гарантировать 100%-ной точности измерений, но я им доверяю. Замеры производились в операционной системе Windows 7 х86 для двух компьютеров примерно одинаковой конфигурации (процессор 2-4 ядра, системная память – четыре гигабайта).

Конкретная конфигурация, какие именно HDD применялись — не столь и важно, SSD не использовались.

Общая статистика для игр и фильмов.

За время снятия лога компьютер использовался только для игр и просмотра фильмов.

Программа весьма неудачно показывает количественный спектр размеров блока доступа, потому необходимы пояснения. Извините, программа написана не для сбора статистики, просто так вышло.

В левой части картинки три раздела – низкоскоростные, высокоскоростные файловые операции и операции через отображение файлов на память (Mapping).

С первыми двумя режимами понятно — если файловые операции идут медленно, то результаты попадают в верхний раздел, если быстро, то в средний. Режим отображения (Mapping) не совсем обычный и стоит привести небольшие разъяснения.

Если программе надо получить информацию из файла, то ей придется выполнить ряд действий:

  • взять регион памяти соответствующего размера;
  • считать данные, целиком или только часть, во взятый ранее регион;
  • получить информацию из считанных данных.

Это довольно долгий и хлопотный процесс. Существует более удобная технология — файл можно отобразить в память приложения. Для этого в свободном диапазоне виртуального пространства выделяется окно и в него ассоциируется файл. Никаких упреждающих чтений не производится. Программе для получения данных из файла достаточно просто прочитать по соответствующему адресу из выделенного окна. При этом операционная система получит ошибку отсутствия страницы и подгрузит данные из файла в окно приложения (выделит небольшой блок памяти и считает туда соответствующий фрагмент файла).

Согласитесь, это очень удобно! Увы, кроме удобства есть и недостаток — максимально видимый размер файла, который может быть открыт через отображение, ограничен размером виртуального окна процесса, и не более 2 Гбайт на один файл. Одна из игр, которая использует только отображение файлов, это S.T.A.L.K.E.R. . теперь вы можете понять, почему данная игра так любит большой размер своего виртуального адресного пространства — из-за отображения. Уфф. Вообще-то, именно ради S.T.A.L.K.E.R. в программу и добавлена индикация отображения, а то выходила глупость — игру запустил, но программа показывает отсутствие дисковой активности. Мило?

По числам в табличках, надеюсь, особых трудностей нет — показывается время выполнения и объем операций; минимальный, максимальный и средний размер блока доступа.

На рисунке справа отображается количество операций с разными размерами блоков. Да решение неудачное, извините. Каждый столбик соответствует своему размеру блока — левый 1 Кбайт (и меньше), второй 2 Кбайт, третий 4 Кбайт . последний 32 Мбайт (и больше).

Давайте всё же вернемся к нашим баранам.

Напомню — компьютер использовался только для игр и просмотра фильмов стандартной размерности через Media Player Classic.

Первое, что бросается в глаза — операционная система ‘постоянно’ читала мелкие файлы длиной 1-2 Кбайт. Отчасти, низкоскоростное чтение настолько мелких файлов (скорее фрагментов) вызвано работой программы просмотра фильмов, но не все же 40 часов из 100. С одной стороны это непонятно, с другой — разве это большая нагрузка для современной дисковой системы?

Для высокоскоростного обмена характерно чтение блоком 2 Кбайт и запись 512 Кбайт. Причем, записывалось довольно много, 83 Гбайт. Сложно сказать, откуда столько взялось, может что-то переписывал по сети. Впрочем, да, именно так — перегонял файлы через VirtualDub с сети на свой компьютер, за это говорит размер блока доступа — в свойствах программы VirtualDub выставлено записывать блоками по 512 Кбайт.

Для режима отображения свойственно чтение блоками 128 Кбайт и более. Причем, если перейти от количества запросов к объему переданных данных, то средний блок чтения составит 2 Мбайт.

Записи в режиме отображения практически не было.

Вполне очевидно, что это «среднебольничная» температура. Информация полезна, но хочется чего-то конкретного. Что можно на себе примерить и сказать ‘вранье’. Сейчас будет.

Возьмем игру Borderlands. Она базируется на Unreal Engine, поэтому результаты не являются столь уж уникальными.

Наверно, лучше привести две статистики – загрузки игры (вместе с вступительными роликами) и самого процесса игры.

Если посмотреть бегло, то никаких существенных отличий между ними нет. Всё тот же поток постоянного низкоскоростного чтения файлов 1 Кбайт, отсутствие каких-либо операций записи. Режим отображения показывает чтение блоками не менее 128 Кбайт и средним порядка 3-8 Мбайт.

Во время игры почти половину времени дисковая система неторопливо читала мелкие файлы длиной 1 Кбайт (или менее) и, примерно, 1/8 времени операционная система загружала отображение. Последний тип операций выполнялся очень большими блоками.

Давайте перейдем к другому компьютеру . нет, одна игра это не показатель. Надо расширить, ну хоть ‘что под руку подвернется’.

Слева загрузка уровня, справа — процесс игры.

Игра красивая, но очень ‘легкая’. Загрузка уровня занимает всего 23 секунды при считывании 120 Мбайт данных. При этом из 23 секунд загрузки только восемь производилось чтение данных с HDD. Запомним. Размер блока доступа 32 Кбайт.

Процесс игры также не вызывает большой дисковой активности — за семь минут игрового времени было считано всего 100 Мбайт в течение четырех секунд. Вполне вероятно, что вклад в эту цифру внесла фоновая активность операционной системы Windows 7 — очень уж она ‘неспокойная’.

Надо отметить ‘традиционное’ низкоскоростное чтение блоком 1 Кбайт.

Как обычно — слева загрузка уровня, справа процесс игры.

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

Размер блока чтения вычислить затруднительно, присутствует нормальное распределение от 2 Кбайт до 256 Кбайт при пике 16 Кбайт. Одно можно сказать точно — во время игры происходит подгрузка данных. Считать 1 Гбайт за 160 секунд, при общем игровом времени 9 минут, ‘просто так’ не получится. В этой игре возможны появления микрофризов (короткие замирания кадра или резкое падение количества кадров в секунду). Впрочем, тестовый прогон с анализом результатов программы FRAPS не показал наличие каких-либо проблем. Это говорит, что с таким типом нагрузки обычный HDD справляется весьма успешно.

Характер поведения напоминает Serious Sam 2. Загрузка быстрая, во время самой игры подгрузка данных практически отсутствует. Блок считывания переменной длины, от 2 Кбайт до 64 Кбайт.

В этой игре нагрузка на дисковую систему смехотворна. Ну, или мне не повезло с выбором места.

Обзор производительности современных накопителей |HDD, SSD, NVMe

  • ПОДЕЛИЛИСЬ

Устройства хранения данных в компьютере прошли долгий путь развития. Появились твердотельные накопители с интерфейсом PCIe 4.0, диски формата NVMe стали стандартом в новых компьютерах, а цены на классические жёсткие диски снизились. В этом обзоре внимание будет уделено не только дорогостоящим моделям, но и всему рынку устройств хранения данных.

  • Участники тестирования
  • Бенчмарки
  • Заключение

Если вы решили самостоятельно собирать компьютер, выбор устройств хранения данных огромен и сделать его нелегко. Необходимо определиться: нужны ли вам твердотельные накопители последнего поколения с самыми высокими характеристиками, средние модели или очень дешёвые жёсткие диски SATA?

Существует множество сегментов рынка с разными ценами, поэтому трудно сказать, будет ли оправдана более дорогая покупка и даст ли она существенный прирост производительности.

Кроме того, как производительность механических жёстких дисков выглядит на фоне современных твердотельных накопителей?

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

ДискОбъёмЧтение
(MB/s)
Запись
(MB/s)
Категория
Corsair MP6001TB49504250NVMe Gen 4.0
Intel Optane 900P280GB25002000NVMe Gen 3.0
Samsung 970 Pro1TB35002700NVMe Gen 3.0
Samsung 970 Evo Plus1TB35003300NVMe Gen 3.0
Samsung 860 Evo500GB550520SATA M.2
Crucial MX5001TB560510SATA
Seagate Ironwolf8TB210210SATA (7200 RPM)
WD Red4TB150150SATA (5400 RPM)
Seagate Firecuda2TB156140SATA (5400 RPM)

Участники тестирования

Начнём снизу, где располагаются три классических жёстких диска. Они крупные как по размерам, так и по объёму данных. Диски дешёвые, совместимые с любой системой, такие использовались на протяжении десятилетий. Большинство дисков обладают скоростью вращения шпинделя 7200 или 5400 оборотов/мин. Существуют также модели 10000 оборотов/мин, но они встречаются реже. Естественно, чем выше этот параметр, тем дороже HDD.

Модели WD Red и Seagate Firecuda имеют значение 5400 оборотов/мин, а более крупный Seagate Ironwolf 7400 оборотов/мин. Если сравнивать WD Red и Seagate Ironwolf, модель 7200 оборотов/мин дешевле в пересчёте на 1 Гб данных, но лишь потому, что объём здесь больше. Если брать диски одинакового размера, версии 7200 оборотов/мин почти всегда немного дороже.

Третий механический диск Seagate Firecuda является гибридным. Здесь есть небольшой объём встроенной твердотельной памяти, чтобы повысить скорость доступа к данным, при этом сохранив цены HDD.

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

Остальные модели являются твердотельными накопителями с разными стандартами и ценами. Есть модель Crucial MX500 с широко распространённым интерфейсом SATA. Это один из самых продаваемых накопителей, поскольку он недорогой и предлагает значительно более высокую производительность по сравнению с традиционными механическими жёсткими дисками.

Дальше идёт Samsung 860 Evo. Это ещё один накопитель с интерфейсом SATA, но на этот раз используется более популярный формат M.2. Данный накопитель позиционируется чуть выше по сравнению с MX500, но в нём тоже есть технологии возрастом несколько лет.

Следом у нас располагаются Samsung 970 Evo Plus и 970 Pro – одни из наиболее популярных накопителей NVMe SSD. Как и другие накопители с названием Evo, модели 860 Evo и 970 Evo Plus используют 3-битную флеш-память MLC NAND против 2-битной в версиях Pro.

В результате долговечность работы у них ниже.

Диски Evo содержат кеш для повышения скорости записи небольших файлов, что позволяет быстрее загружать программы – на уровне скоростей накопителей Pro.

Два наиболее продвинутых диска в этом обзоре — Intel Optane 900p и Corsair MP600. Optane призван объединить в себе быстрое время отклика у оперативной памяти и большую ёмкость твердотельных накопителей. Это самая дорогая технология на потребительском рынке устройств хранения данных.

Optane лучше всего проявляет себя в специфических промышленных приложениях, поскольку скорость чтения и записи данных у него меньше, чем у других накопителей по значительно более низкой цене. Диск Corsair располагается на вершине в цепочке современных твердотельных накопителей за счёт последнего стандарта PCIe 4.0.

Желающие могут увидеть разницу между дисками с Gen 4.0 и Gen 3.0. MP600 не самый быстрый из существующих, но он показывает достижимый уровень производительности подобных накопителей.

Переход от механических жёстких дисков на твердотельные накопители стал большим событием для компьютерного мира. Если сравнить SSD первой пары поколений с самыми быстрыми современными — разница тоже большая.

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

Чтобы понять это, нужно помнить, что хранилище данных является не единственным компонентом компьютера.

Некоторые приложения сильно зависят от хранилища, другие от вычислительной мощи процессора. Ограниченные хранилищем приложения используют много данных, но им не нужна большая мощность для обработки этих данных. Например, копирование файлов не слишком нагружает процессор, поэтому более быстрый жёсткий диск позволяет выполнить копирование быстрее.

С другой стороны, ограниченные по вычислительной мощи приложения используют мало данных, но им требуется большая производительность для их обработки. Это могут быть игры и рабочие приложения. Наступает момент, когда более быстрый твердотельный накопитель не повышает скорость выполнения таких задач.

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

Бенчмарки

Тесты стандартной скорости последовательного чтения и записи показывают разницу в производительности между устройствами разных поколений. Механические жёсткие диски выдают примерно 100 Мб/с, SATA SSD около 500 Мб/с, диски PCIe 3.0 около 3000 Мб/с, а у PCIe 4.0 скорость чтения достигает 5000 Мб/с.

Хотя 970 Evo Plus на $100 дешевле по сравнению с 970 Pro, он превосходит его в тестах записи данных за счёт более высокоскоростного кеша. Если в тестах использовать более крупные файлы, которые быстро заполняют буфер, скорость записи Evo падает вдвое.

Если смотреть на скорость чтения и записи случайных блоков данных, механические диски почти не видны на графиках. Им в таких случаях нужно ждать, пока плата доберётся до считывающей головки. В твердотельных накопителях движущихся частей нет и им достаточно запросить определённый бит.

Как и предполагалось, диск Optane вышел победителем за счёт низкой задержки при доступе к случайным файлам. Самый дешёвый твердотельный накопитель MX500 является и самым медленным среди них.

Три накопителя Samsung показали близкие друг к другу результаты, хотя интерфейс SATA значительно медленнее по сравнению с PCIe. Поскольку в этом тесте пределы пропускной способности SATA не были достигнуты, более быстрый интерфейс ничего не даёт.

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

Трассировка приложений (производительность Office)

Дальше идут тесты Application Storage Traces в бенчмарке PCMark 8. Хотя результаты взяты из бенчмарка, они отражают работу в реальных приложениях. Они показывают копирование запросов на чтение и запись от различных приложений и сколько времени занимает выполнение.

Во всех трёх наборах тестов твердотельные накопители выдают почти одинаковые результаты, тогда как жёсткие диски намного отстают. Это снова связано с тем, что приложения ограничены вычислительной мощью компьютера, когда хранилище быстрее, чем 200 Мб/с.

Трассировка приложений (создание контента)

Среди жёстких дисков Seagate Ironwolf является явным победителем, поскольку у него скорость вращения шпинделя 7200 оборотов/мин, а у двух других 5400 оборотов/мин. Seagate Firecuda хорошо проявляет себя в приложениях создания контента за счёт кеша NAND объёмом 8 Гб.

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

Трассировка приложений (игры)

У твердотельных накопителей результаты разнятся всего на несколько процентов. Модель Optane снова выигрывает, но преимущество очень незначительное. MX500 почти не уступает, при этом цена у него в пересчёте на 1 Гб данных в 10 раз ниже.

Если посмотреть на остальные SSD, переплата не даёт заметного повышения производительности. Впрочем, эти три теста не слишком нагружают устройства хранения данных, поэтому нужно смотреть на другие.

Время запуска игры CS:GO

Например, на скорость загрузки игр. В данном случае рассматриваются популярная киберспортивная игра CS:GO и Tomb Raider, более кинематографичная игра. В последней между запусками компьютер перезагружался, тогда как в тесте CS:GO нет.

В этой методологии нет явных преимуществ и недостатков, она просто показывает разные сценарии применения. Во всех трёх тестах явно выраженным победителем был накопитель Corsair.

Время запуска игры Shadow of the Tomb Raider

В Tomb Raider второе и третье место с незначительной разницей заняли Optane и 970 Pro. Optane испытывает некоторые затруднения с запуском CS:GO, поскольку он создан не для игр.

Время загрузки уровней игры Shadow of the Tomb Raider

Во время запуска игр механические жёсткие диски не слишком уступают SSD, поскольку время загрузки само по себе невелико. Если же происходит загрузка определённого уровня внутри игры, SSD справляются в 2-3 раза быстрее. Причина в том, что значительная часть данных для загрузки представляет собой текстуры и файлы окружения.

Копирование больших файлов

Теперь посмотрим на более распространённые задачи, то есть копирование файлов. Тест был разбит на две части. Сначала копировались примерно 100 файлов видео, затем примерно 13000 небольших файлов из установки игры.

Крупные файлы занимали около 16 Гб, а небольшие в сумме около 8,6 Гб. В обоих случаях копирование выполнялось внутри одного диска. Это позволяет оценить скорость чтения и записи при одной и той же операции.

Копирование маленьких файлов

Четыре лучших твердотельных накопителя показали высокие скорости последовательного чтения и записи данных. MX500 и 860 Evo были близки к своим конкурентам в других тестах, но теперь интерфейс SATA ограничил их возможности.

Файлы переполняют кеш, который в других тестах даёт преимущество и повышает скорость. Это видно по модели 860 Evo, которая намного уступила MX500. Corsair MP600 со своим новым стандартом PCIe 4.0 побеждает, но преимущество невелико.

Механические жёсткие диски показали примерно одинаковое время в обоих тестах, хотя при копировании крупных файлов объём данных в два раза больше. Разница в результатах в тестах с небольшими файлами уменьшается за счёт нагрузки на центральный процессор для обработки каждого файла и его метаданных.

Пропускная способность резервного копирования

Дальше посмотрим на производительность при работе программ резервного копирования. Каждый компьютерный пользователь должен установить хотя бы одну такую программу защиты данных на случай поломки диска или попадания в систему вирусов. Можно сказать, что это очень жизненные тесты.

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

Казалось бы, такой тест должен сильно нагружать устройства хранения, но речь идёт не просто о копировании файлов из одного местоположения в другое. Файлы должны быть обработаны и добавлены к итоговому файлу образа, что занимает некоторое время.

В этом тесте победил 970 Pro, незначительно отстают от него MP600 и 970 Evo. Seagate Firecuda и 860 Evo намного уступают из-за более медленного в целом типа хранилища. Размер резервных копий составлял около 90 Гб, тогда как объём кеша у этих моделей всего несколько гигабайт.

Скорость загрузки Windows 10

Последний тест относится ко времени загрузки Windows 10. Во всех случаях выполнялась чистая установка операционной системы, набор программ и настройки были одинаковые. С одинаковым результатом лидируют MP600 и 970 Pro. Optane 900p уступает примерно на полсекунды, 970 Evo ещё на секунду. Seagate Firecuda показал худший результат примерно в 70 секунд.

Заключение

Рассматривая столько разных технологий, нужно хорошо понимать все их преимущества и недостатки, чтобы сделать правильный выбор. Вместо более быстрого твердотельного накопителя может быть имеет смысл выбрать более крупный накопитель с более низкой скоростью или вообще механический жёсткий диск.

Накопитель Corsair MP600 Gen4 стал победителем по сумме всех тестов в потребительских приложениях. Новый интерфейс PCIe 4.0 доступен только на последней платформе процессоров AMD с материнскими платами под них. Он даёт ряд преимуществ, но они не делают хранилища радикально более быстрыми по сравнению с предыдущим поколением.

Интересней тот факт, что диски Gen 4.0 дешевле почти всех остальных на рынке с аналогичным уровнем производительности. Из всех проверенных в недавних тестах накопителей Gen 4.0 больше всего понравился Sabrent Rocket за счёт высокой производительности и приемлемой цены. Если вы собираете компьютер, который не поддерживает PCIe Gen 4.0, всё равно можно использовать этот диск за счёт обратной совместимости.

Если этот вариант не для вас, диски с интерфейсом Gen 3.0 вроде Samsung 970 Evo Plus и WD Black тоже являются отличным выбором. Они обеспечивают солидную производительность значительно дешевле, чем их более старшие аналоги от этих же производителей.

Если вы создаёте бюджетную систему для друзей или членов семьи, которые не слишком сильно нагружают компьютер, старые модели накопителей SSD SATA тоже станут неплохим вариантом. Можно заплатить всего $100 за SSD объёмом 1 Тб или всего $58 за 500 Гб Crucial MX500. Скорость у них намного выше по сравнению с жёсткими дисками, в отличие от цены.

Механические HDD рекомендуются только для хранения мультимедийных файлов или создания резервных копий. В остальном их низкая скорость не годится для современных компьютеров. В частности, очень медленно работают диски со скоростью вращения шпинделя 5400 оборотов/мин.

http://overclockers.ru/lab/show/41187_4/HDD_i_SSD_edinstvo_razlichij
http://trashexpert.ru/hardware/storage/obzor-proizvoditelnosti-sovremennyh-nakopitelej-hdd-ssd-nvme/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *