Почему мой жесткий диск так медленно на" 4K " тесты скорости?

что не так с моей скоростью в 4K? Почему она такая медленная? Или все должно быть именно так?

Screenshot of benchmark

Это скорость в порядке? Почему у меня такая низкая скорость на 4К?

16
задан Jason
17.03.2023 0:40 Количество просмотров материала 3155
Распечатать страницу

3 ответа

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

в CrystalDiskMark " Seq " означает последовательный открыть, а "4К" означает random access (в кусках по 4 КБ за раз, потому что одиночные байты будут слишком медленными и нереалистичными1).


определения

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

последовательный доступ

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

с точки зрения диска, он видит такие команды, как "чтение блока № 1, блока #2, читать блок #3, читать байтовый блок #4"1.

произвольный доступ

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

с точки зрения привода, он видит такие команды, как "чтение блока # 56, чтение блока #5463, чтение блока #14, читать блока № 5"

блоки

Я упоминал блоки пару раз. Поскольку компьютеры имеют дело с такими большими размерами (1 MB ~= 1000000 B), даже последовательный доступ неэффективен, если вы должны попросить диск для каждого отдельного байта - слишком много болтовни. На практике операционная система запрашивает блоки данных с диска одновременно.

на блок - это просто диапазон байтов; например, блок #1 может быть байтами #1 - #512, блок #2 может быть байт #513-#1024 и т. д. Эти блоки или 512 байта или 4096 байт больших, в зависимости от привода. Но даже после работы с блоками, а не с отдельными байтами, последовательный доступ к блокам выполняется быстрее, чем случайный доступ.


производительность

последовательный

последовательный доступ обычно быстрее, чем произвольный. Это потому, что последовательный доступ позволяет операционной системе и привод предсказать что понадобится дальше, так и загружайте большой кусок заранее. Если вы запросили блоки "1, 2, 3, 4", ОС может догадаться, что вам понадобится" 5, 6, 7, 8", поэтому он говорит диску читать "1, 2, 3, 4, 5, 6, 7, 8" за один раз. Точно так же диск может считывать физическую память за один раз, а не "искать 1, читать 1,2,3,4, искать 5, читать 5,6,7,8".

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

Diagram of HDD internals

изображение http://www.realtechs.net/data%20recovery/process2.html

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

Это обычно занимает очень много времени, гораздо дольше чем фактическое значение. Мы говорим >5 мс только для того, чтобы добраться до места, где живет запрошенный байт, в то время как фактическое чтение байта составляет в среднем около 0,00000625 МС на последовательное чтение байта (или 0,003125 МС на блок 512 в).

Random

случайный доступ, с другой стороны, не имеет такого преимущества предсказуемости. Так что если вы хотите читать 8 случайных байтов, может быть, из блоков "8,34,76,996,112,644,888,341", диск должен идти "искать в 8, 8 читать, искать to34, 34 читать, искать to76, читать 76, ...". Обратите внимание, как это нужно искать снова для каждого блока? Вместо среднего значения 0,003125 МС на последовательный блок 512 в, теперь среднее значение (5 мс поиск + 0,003125 МС чтение) = 5,003125 МС на блок. Это много раз медленнее. На самом деле, в тысячи раз медленнее.

SSDs

к счастью, теперь у нас есть решение: SSD.

SSD, a твердотельный накопитель, is, как следует из названия,твердотельные. Это означает, что он имеет нет движущихся частей. Более того, способ расположения SSD означает, что есть (эффективно3) не нужно искать расположение байта; он уже знает. Вот почему у SSD намного меньше разницы между последовательным и произвольным доступом.

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


1 более точно, с приводами LBA адресуйте в блоках 512 байт (512n/512e) или 4kB (4Kn) для причин эффективности. Кроме того, реальные программы почти никогда не нуждаются только в одном байте за раз.

2 технически искать только ссылается на перемещение руки. Ожидание данных для поворота под головкой ожидания на вершине поиска.

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

84
отвечен Bob 2023-03-18 08:28

4K относится к случайный ввод-вывод. Это означает, что диск просят открыть небольшие блоки (4 КБ) в случайных точках в тестовый файл. Это слабость жестких дисков; возможность доступа к данным в разных регионах диска ограничена скоростью вращения диска и скоростью перемещения головок чтения и записи. Последовательный Ввод-Вывод, где последовательные блоки достигаются, гораздо легке потому что привод может просто прочитать или написать блоки как диск крутится.

твердотельный накопитель (SSD) не имеет такой проблемы со случайным вводом / выводом, как все, что ему нужно сделать, это посмотреть, где данные хранятся в основной памяти (как правило, NAND flash, может быть 3D XPoint или даже DRAM) и читать или записывать данные в соответствующем месте. SSD полностью электронные и не нужно ждать на вращающемся диске или движущейся головке чтения-записи для доступа к данным, что делает их намного быстрее, чем жесткие диски в этом отношении. Оно для по этой причине обновление до SSD значительно повышает производительность системы.

Примечание: производительность последовательного ввода-вывода на SSD часто намного выше, чем на жестком диске. Типичный твердотельный накопитель имеет несколько микросхем NAND, подключенных параллельно к контроллеру флэш-памяти, и может обращаться к ним одновременно. Благодаря распределению данных между этими микросхемами достигается схема диска, аналогичная RAID 0, что значительно повышает производительность. (Обратите внимание, что многие новые диски, особенно более дешевые, используйте тип NAND, называемый TLC NAND, который имеет тенденцию быть медленным при записи данных. Диски с TLC NAND часто используют небольшой буфер более быстрого NAND, чтобы обеспечить более высокую производительность для небольших операций записи, но может значительно замедлиться, как только этот буфер заполнен.)

2
отвечен bwDraco 2023-03-18 10:45

Как уже отмечалось в других ответах, " 4K " почти наверняка относится к случайному доступу в блоках размером 4 Кб.

каждый раз, когда жесткий диск (не SSD) просят прочитать или записать данные, есть две значительные задержки:

  • искать задержкой, для головки чтения/записи "искать" правильную круговую трассу (или "цилиндр") на блюде, включая время, необходимое для стабилизации пути и синхронизации данных, хранящихся на блюдо
  • задержка вращения, для вращающегося диска под головкой чтения / записи для поворота таким образом, чтобы желаемая часть дорожки ("сектор") проходила под головкой

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

типичный настольный жесткий диск вращается со скоростью 7200 об / мин, в то время как типичный диск ноутбука может вращаться со скоростью около 5000 об / мин. Это значит что каждая секунда, оно идет через итог 120 революций (привода настольного компьютера) или около 83 революций (привода ноутбука). Поскольку в среднем диску будет нужно закрутить половину витка прежде чем пожеланный участок пройдет под головку, это значит что мы можем надеяться что диск мочь обслуживать приблизительно дважды что много запросов I/O в секунду, принимая то

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

таким образом, мы должны ожидать, что сможем выполнять порядка 200 операций ввода-вывода в секунду, если данные, к которым его просят получить доступ (для чтение или запись) относительно локализовано физически, что приводит к задержке вращения, являющейся ограничивающим фактором. В общем случае мы ожидаем, что накопитель сможет выполнять порядка 100 операций ввода-вывода в секунду, если данные распределены по пластине или пластинам, что требует значительного поиска и приводит к тому, что задержка поиска является ограничивающим фактором. В условиях хранения это "IOPS производительность " жесткого диска; это, а не производительность последовательного ввода-вывода, является как правило, ограничивающий фактор в реальных системах хранения. (Это-большая причина, почему SSD настолько быстрее использовать: они устраняют вращательную задержку и значительно уменьшают задержку поиска, поскольку физическое движение головы чтения/записи становится табличным поиском в таблицах слоя сопоставления флэш-памяти, которые сохранены в электронном виде.)

пишет, как правило, медленнее, когда есть очистить кэш, участвующих. Нормально операционные системы и жесткие диски пробуют переупорядочить случайные пишет для того чтобы повернуть случайный ввод-вывод в последовательный ввод-вывод, где это возможно, для повышения производительности. Если есть явный сброс кэша или пишите барьер, эта оптимизация устранена с целью обеспечения того, чтобы состояние данных в постоянном хранилище соответствовало тому, что ожидает программное обеспечение. В принципе, то же самое рассуждение применяется во время чтения, когда нет дискового кэша, либо потому, что его нет (редкость сегодня в системах настольного стиля), либо потому, что программное обеспечение намеренно обходит (что часто делается при измерении производительности ввода/вывода). Оба из тех, сократить максимальный потенциал производительности в IOPS, что более пессимистический, или 120 IOPS для 7200 об / мин езды.

  • при 100 IOPS при 4 Кб на ввод-вывод, мы получаем производительность около 400 кб / с.
  • при 200 IOPS при 4 Кб на ввод-вывод, мы получаем производительность около 800 КБ / с.

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

Что касается чисто последовательного ввода/вывода, пропускная способность в диапазоне 150 МБ / с вовсе не является необоснованной для современных вращающихся жестких дисков. Но очень мало реальных операций ввода-вывода строго последовательны, поэтому в большинстве ситуаций чисто последовательные операции ввода-вывода становятся скорее академическим упражнением, чем показателем реальных результатов.

2
отвечен a CVn 2023-03-18 13:02

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

benchmarking
hard-drive
hardware-failure
speed
storage
Вверх