Какая единица измерений используется для обозначения скорости жесткого диска

Обновлено: 06.07.2024

Чтобы ничего не потерять, я храню файлы на разных жестких дисках.

Один нужен, чтобы «Виндоус» загружалась за несколько секунд. Второй чуть медленнее, но объемнее — на нем я храню фильмы и архив музыки. Третий диск только для работы. И еще два внешних диска, на которых я храню то, что не влезло на остальные.

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

Что мы называем жестким диском

«Жесткий диск» — это устройство, на котором мы храним файлы и программы. Раньше был только один тип таких устройств — HDD. Потом добавились твердотельные накопители — SSD, но многие по привычке и их называют жесткими дисками. В этой статье я рассказываю обо всех основных типах устройств для хранения данных.

Расскажу, как выбрать жесткий диск без советов продавцов и так, чтобы ничего не перепутать.

HDD или SSD

Это два разных типа накопителей. Вот чем они отличаются.

HDD (hard disk drive — «жесткий диск»). Принцип работы основан на магнитной записи. Внутри корпуса размещаются диски из особой смеси металла и стекла с напылением сверху. На верхний слой записывается информация — по сути, тем же способом, что и на виниловых пластинках. Технология энергонезависимая: информация остается на диске и без подключения электричества.

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

SSD (solid-state drive — «твердотельный накопитель»). Такой диск состоит из контроллера и набора микросхем, на которых хранится информация.

Мельчайшие элементы внутри микросхем принимают значение «1» либо «0». Дальше процессор считывает эти значения и преобразует их в привычные нам файлы: документы, картинки, видео. SSD можно сравнить с продвинутой и объемной флешкой.

Из минусов SDD обычно называют цену и емкость: в продаже сложно найти SDD с объемом больше 2 Тб. И стоят такие диски обычно дороже, чем HDD.

SSHD (solid-state hybrid drive — «гибридный жесткий диск»). Это устройство, в котором данные хранятся и на дисках, и во флеш-памяти.

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

Моментами такие устройства работают быстрее, но по сути остаются теми же HDD со всеми их недостатками.

Например:
💾 Жесткий диск HDD на 1 Тб — Seagate за 4036 Р
💾 Твердотельный накопитель SSD на 500 Гб — Samsung за 5299 Р
💾 Гибридный жесткий диск SSHD на 2 Тб — Seagate за 10 490 Р

Внешний или внутренний диск

Накопители можно устанавливать внутрь компьютера или ноутбука или просто носить с собой как флешку.

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

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

Некоторые производители измеряют диски не в дюймах, а в миллиметрах. Пишут так: 2242, 2262 или 2280 мм. Первые две цифры означают длину диска, последние две — ширину. Такие форм-факторы используют для SSD.

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

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

Любой внутренний HDD будет выглядеть как металлическая тяжелая коробочка

Например:
💾 Внутренний HDD для системного блока с форм-фактором 3,5 — Seagate за 3669 Р
💾 Внутренний HDD для ноутбука с форм-фактором 2,5 — Toshiba за 3904 Р
💾 Внутренний SSD с форм-фактором 2280 — A-DATA за 11 990 Р

Внешние жесткие диски можно носить с собой, поэтому от форм-фактора зависит только удобство. Я спокойно пользуюсь большим диском на 2,5 дюйма, а кто-то предпочитает миниатюрные на 1,8 дюйма.

Внешние диски чаще всего используют USB-разъемы , поэтому для их подключения нужно просто вставить провод в нужное гнездо — как флешку.

Внешний диск от Toshiba чуть меньше обычной ручки. Я переношу такой просто в заднем кармане брюк

Например:
💾 Внешний HDD с форм-фактором 2,5 — Toshiba за 3799 Р
💾 Внешний SSD с форм-фактором 2,5 — Samsung за 7599 Р

Интерфейсы

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

Интерфейс SATA — основной стандарт для подключения жестких дисков. Есть три поколения таких разъемов, различаются они в основном пропускной скоростью:

  1. SATA 1: 1,5 гигабита в секунду. В идеальных условиях фильм весом 8 Гб скачается почти за минуту.
  2. SATA 2: 3 гигабита в секунду. На фильм должно хватить 30 секунд.
  3. SATA 3: 6 гигабит в секунду. Фильм скачивается за 10 секунд.

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

Поэтому для получения реальных данных максимальный показатель скорости нужно делить на 3—5. То есть на высокоскоростном SATA 3 фильм будет скачиваться не 10 секунд, а около минуты. На SATA 1 стоит рассчитывать на несколько минут.

Новые устройства выпускают в основном на базе SATA 3.

PCI-E — этот интерфейс используют в основном для подключения твердотельных дисков — SSD. На базе PCI-E создано несколько разъемов, например M2.

USB — этот интерфейс используют для подключения внешних дисков. Вот популярные версии.

  1. USB 2 — довольно медленный, но распространенный формат для HDD и флешкарт. Максимальная скорость — до 60 мегабайт в секунду. В реальности такие HDD записывают порядка 1—10 мегабайтов в секунду, то есть фильм весом в 8 Гб будет скачиваться около 10 минут.
  2. USB 3.0 — современный стандарт с высокой скоростью, пропускная способность до 4,8 гигабит в секунду. Если смотреть на тесты, то жесткий диск через USB 3.0 может записывать со скоростью 1—15 мегабайт в секунду. Кино скачается за 1—3 минуты.
  3. USB 3.2 Type C — спецификация USB с еще большей скоростью. Пропускная способность до 10 гигабит, в реальности же такой диск может выдавать до нескольких десятков мегабайт в секунду. Кино получится записать буквально за минуту.

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

Если покупаете внешний диск, учитывайте обратную совместимость: вы сможете использовать диск USB 3.0 в старом разъеме USB 2, только скорость будет минимальной. Поэтому покупать дорогой внешний SSD для обычного ноутбука смысла нет.

Например:
💾 HDD на SATA 2 — Toshiba за 3090 Р
💾 HDD на SATA 3 — Western за 4144 Р
💾 SSD на PCI-E, M2 — WD Black за 7399 Р
💾 HDD на USB 3.0 — Seagate за 4190 Р

Рассказываем в нашей рассылке дважды в неделю. Подпишитесь, чтобы совладать с бюджетом

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

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

Если вы планируете купить HDD, то можно ориентироваться на скорость вращения шпинделя — это ось, которая крутит те самые пластинки:

  1. 5400 оборотов в минуту — медленнее, меньше шума, меньше тепловыделения, а значит, надежнее;
  2. 7200 оборотов в минуту — быстрее, больше шума, чуть меньше надежности.

Лучше же ориентироваться на разные характеристики в зависимости от потребностей.

Если нужен внутренний жесткий диск для операционной системы — выбирайте SSD или HDD на 7200 об/мин. Так компьютер будет загружаться и работать быстрее.

Для хранилища данных подойдет HDD на 5400 об/мин. Работает тихо, надежно.

В качестве внешнего жесткого диска удобен HDD с интерфейсом USB 3.0. Такой интерфейс будет у большинства ноутбуков, компьютеров и даже телевизоров.

Например:
💾 SSD на 500 Гб — Samsung за 5299 Р
💾 HDD на 4 Тб — Western за 8714 Р
💾 Внешний HDD на 2 Тб — Seagate за 4190 Р

Объем памяти

У HDD-дисков в основном объем памяти от 500 Гб до 10 Тб, у SSD-накопителей — от 128 Гб до 2 Тб. Сколько именно вам нужно памяти, зависит от задач, но есть несколько особенностей:

  1. Цены на HDD с объемом до 2 Тб будут практически одинаковыми: нет смысла экономить и покупать диск на 500 Гб, если за ту же сумму можно купить 2 Тб.
  2. У дисков с объемом памяти 4 Тб и выше ценник растет пропорционально: проще купить пять дисков по 2 Тб, чем один диск на 10 Тб.

Например:
💾 HDD на 500 Гб — Western за 4090 Р
💾 HDD на 2 Тб — Seagate за 4879 Р
💾 SSD на 250 Гб — Samsung за 3760 Р
💾 SSD на 1 Тб — Samsung за 10 494 Р

На что обратить внимание при выборе жесткого диска

  1. Решите, для чего вам нужен жесткий диск: чтобы быстро загружался компьютер или чтобы хранить коллекцию файлов.
  2. Когда выбираете внутренний жесткий диск, обязательно проверьте наличие нужных разъемов в материнской плате.
  3. Если нужен внешний диск, не переплачивайте за новомодные интерфейсы: все равно они не будут работать, если в вашем ноутбуке старый USB 3.0.
  4. Памяти бывает много — подумайте, действительно ли вам нужен огромный диск на 4 Тб. Скорее всего, быстрого SSD на 500 Гб и хранилища на 1 Тб будет достаточно.



Настаиваю, что акценты в статье расставлены неправильно) Да, критиковать проще, чем творить - поэтому критикую)))

Сейчас, когда цены на SSD спустились с небес на землю, всем далёким от компьютеров людям можно и нужно советовать следующее - покупать и по возможности пользоваться только такими компьютерами, где операционная система на букву W установлена на SSD диск, и чтобы он был не менее 256 (+-) гигабайт (в 128 рано или поздно будет очень тесно).

Те люди, которым нужен большой внутренний HDD, разберутся и без наших советов)

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

chitatel,Сломается компьютер, но не винчестер, и не будет сложности вытащить информацию

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

2. "Например, если купить для обычного системного блока жесткий диск шириной 2,5 дюйма, придется думать, куда его положить: стандартные крепления рассчитаны на диски 3,5 дюйма".
Ложь! Все современные корпуса, уже года 4, имеют от 2 до 4 креплений для дисков формата 2,5 либо имеют салазки для крепления таких дисков.

3. "Некоторые производители измеряют диски не в дюймах, а в миллиметрах. Пишут так: 2242, 2262 или 2280 мм. Первые две цифры означают длину диска, последние две — ширину".
Во первых, наоборот, а в вторых это называется формат M2, который еще имеет два типа ключей - В и К.

4. "Чтобы подключить внутренний диск, нужно выключить компьютер или ноутбук, снять крышку, найти нужные разъемы для обмена данными и питания, подсоединить устройство."
А крепить к месту его что, не надо? И ничего, что даже SATA разъемы в ноуте двух типов и могут понадобится переходники?

5. А еще есть, помимо SATA, такой интерфейс, как SAS. И тут засада - SAS обратно совместим с интерфейсом SATA: устройства 3 Гбит/с и 6 Гбит/с SATA могут быть подключены к контроллеру SAS, но не наоборот. То есть, купили диск SAS, а контроллера нет. Как правило, в магазинах появляется немного реже и стоит дороже, но покупатель может повестись на скорость до 12 Гбит/сек и на желании консультанта втюхать железку подороже.

6. PCI-E - это шина. А вот М2 - разъем, который работает через PCI-E, как и разъемы ExpressCard, Mini PCI, МХМ и другие. И снова - не указано, что есть два типа ключей, и даже если разъем М2, но ключи разные - велик риск, что диск не получится подключить. Хотя все чаще появляются модели с двумя ключами.

7. Диски существуют с оборотами 5400, 7200, 10000 и 15000 оборотов в минуту. Так же есть диски (их можно встретить в сборках иностранных брендов) со скоростью 5900 и 5700 оборотов. Ну и специализированнные диски IntelliPower, где нет фиксированной скорости. Такие версии редко встретишь в рядовой домашней системе, но они есть в магазинах, и часто их берут для домашних NAS систем.

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

8."Если нужен внешний диск, не переплачивайте за новомодные интерфейсы: все равно они не будут работать, если в вашем ноутбуке старый USB 3.0."
Если покупается на сечас и завтра будет выброшен - то да, не стоит покупать более новую модель. Но скоро будет новый ноутбук или настольный ПК - и мучиться, что купил когда-то дешевый диск, сэкономил 200 рублей? А ведь часто внешние диски берут для хранения фото, документов или фильмов для хранения годами.

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

Еще важно учитывать при покупке SSD - его кэш, он более важен, чем в HDD. Чем больше SSD по объему, тем он быстрее. Как раз из-за кэша. Например, размер файла 10 Мб, и есть два диска с кэшем 5 и 15 Мб. В первом случае часть файла скопируется быстро, а часть в разы медленнее. Во втором - размер кэша позволяет скопировать файл целиком на полной скорости.

Стоит упомянуть, как подключается шнур к самому диску (речь о внешних). Коннектор для компа может быть USB, а вот другой конец может быть любым - от обычного mini-USB до экзотических проприетарных разъемов, которые потом не найти даже на Али.
Ну и плюс внешние диски могут иметь два коннектора USB - один для передачи данных, второй для питания. Обычно этим грешат модели высокой емкости.

И если вы не видели, как меняют диски, лучше не рискуйте - попросите профи. Потому как просто подключил и пользуешься - это не про диски.
Что я встречал:
- упал один мелкий болтик и замкнул материнку, привет новая мать;
- немного силы и кабель питания воткнут в разъем для SATA кабеля, диск в мусор;
- ноутбук был залочен от подключения других носителей (а разлочить только в BIOS), в итоге слетело все, что могло слететь;
- вместо болтов прикрутили саморезом, да еще и шуруповертом, ессно, пробили все, что можно;
- не расчитали мощность блока питания и поставили два емких диска, скачек напряжения и груда металла, выжили только процессор и DVD привод;
- выломанный/выдранный MOLEX с диска - не смогли инициализировать в ОС и пытались переподключить.

abstract: разница между текущей производительностью и производительностью теоретической; latency и IOPS, понятие независимости дисковой нагрузки; подготовка тестирования; типовые параметры тестирования; практическое copypaste howto.

Предупреждение: много букв, долго читать.

  • научная публикация, в которой скорость кластерной FS оценивали с помощью dd (и включенным файловым кешем, то есть без опции direct)
  • использование bonnie++
  • использование iozone
  • использование пачки cp с измерениема времени выполнения
  • использование iometer с dynamo на 64-битных системах

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


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

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

С опцией же direct (iflag=direct для чтения, oflag=direct для записи) dd проверяет лишь линейную скорость. Которая совершенно не равна ни максимальной скорости (если мы про рейд на много дисков, то рейд в несколько потоков может отдавать большую скорость, чем в один), ни реальной производительности.

IOmeter — лучше всего перечисленного, но у него есть проблемы при работе в linux. 64-битная версия неправильно рассчитывает тип нагрузки и показывает заниженные результаты (для тех, кто не верит — запустите его на ramdisk).

Спойлер: правильная утилита для linux — fio. Но она требует очень вдумчивого составления теста и ещё более вдумчивого анализа результатов. Всё, что ниже — как раз подготовка теории и практические замечания по работе с fio.

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

Все современные носители, кроме ramdisk'ов, крайне негативно относятся к случайным операциям записи. Для HDD нет разницы запись или чтение, важно, что головки гонять по диску. Для SSD же случайная операция чтения ерунда, а вот запись малым блоком приводит к copy-on-write. Минимальный размер записи — 1-2 Мб, пишут 4кб. Нужно прочитать 2Мб, заменить в них 4кб и записать обратно. В результате в SSD'шку уходит, например, 400 запросов в секундну на запись 4кб которые превращаются в чтение 800 Мб/с (. ) и записи их обратно. (Для ramdisk'а такая проблема могла бы быть тоже, но интрига в том, что размер «минимального блока» для DDR составляет около 128 байт, а блоки в тестах обычно 4кб, так что гранулярность DDR в тестах дисковой производительности оперативной памяти не важна).

Этот пост не про специфику разных носителей, так что возвращаемся к общей проблеме.

Мы не можем мерять запись в Мб/с. Важным является сколько перемещений головки было, и сколько случайных блоков мы потревожили на SSD. Т.е. счёт идёт на количество IO operation, а величина IO/s называется IOPS. Таким образом, когда мы меряем случайную нагрузку, мы говорим про IOPS (иногда wIOPS, rIOPS, на запись и чтение соотв.). В крупных системах используют величину kIOPS, (внимание, всегда и везде, никаких 1024) 1kIOPS = 1000 IOPS.

И вот тут многие попадают в ловушку первого рода. Они хотят знать, «сколько IOPS'ов» выдаёт диск. Или полка дисков. Или 200 серверных шкафов, набитые дисками под самые крышки.

Тут важно различать число выполненных операций (зафиксировано, что с 12:00:15 до 12:00:16 было выполнено 245790 дисковых операций — т.е. нагрузка составила 245kIOPS) и то, сколько система может выполнить операций максимум.

Число выполненых операций всегда известно и легко измерить. Но когда мы говорим про дисковую операцию, мы говорим про неё в будущем времени. «сколько операций может выполнить система?» — «каких операций?». Разные операции дают разную нагрузку на СХД. Например, если кто-то пишет случайными блоками по 1Мб, то он получит много меньше iops, чем если он будет читать последовательно блоками по 4кб.

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

Драма состоит в том, что никто не знает, какие именно запросы придут. Маленькие? Большие? Подряд? В разнобой? Будут они прочитаны из кеша или придётся идти на самое медленное место и выковыривать байтики с разных половинок диска?

  • Тест диска (СХД/массива) на best case (попадание в кеш, последовательные операции)
  • Тест диска на worst case. Чаще всего такие тесты планируются с знанием устройства диска. «У него кеш 64Мб? А если я сделаю размер области тестирования в 2Гб?». Жёсткий диск быстрее читает с внешней стороны диска? А если я размещу тестовую область на внутренней (ближшей к шпинделю) области, да так, чтобы проходимый головками путь был поболе? У него есть read ahead предсказание? А если я буду читать в обратном порядке? И т.д.

В результате мы получаем цифры, каждая из которых неправильная. Например: 15kIOPS и 150 IOPS.

Какая будет реальная производительность системы? Это определяется только тем, как близко будет нагрузка к хорошему и плохому концу. (Т.е. банальное «жизнь покажет»).

  1. Что best case всё-таки best. Потому что можно дооптимизироваться до такого, что best case от worst будет отличаться едва-едва. Это плохо (ну или у нас такой офигенный worst).
  2. На worst. Имея его мы можем сказать, что СХД будет работать быстрее, чем полученный показатель. Т.е. если мы получили 3000 IOPS, то мы можем смело использовать систему/диск в нагрузке «до 2000».

Ну и про размер блока. Традиционно тест идёт с размером блока в 4к. Почему? Потому что это стандартный размер блока, которым оперируют ОС при сохранении файла. Это размер страницы памяти и вообще, Очень Круглое Компьютерное Число.

Нужно понимать, что если система обрабатывает 100 IOPS с 4к блоком (worst), то она будет обрабатывать меньше при 8к блоке (не менее 50 IOPS, вероятнее всего, в районе 70-80). Ну и на 1Мб блоке мы увидим совсем другие цифры.

Всё? Нет, это было только вступление. Всё, что написано выше, более-менее общеизвестно. Нетривиальные вещи начинаются ниже.

  • прочитать запись
  • поменять запись
  • записать запись обратно

Для удобства будем полагать, что время обработки нулевое. Если каждый запрос на чтение и запись будет обслуживаться 1мс, сколько записей в секунду сможет обработать приложение? Правильно, 500. А если мы запустим рядом вторую копию приложения? На любой приличной системе мы получим 1000. Если мы получим значительно меньше 1000, значит мы достигли предела производительности системы. Если нет — значит, что производительность приложения с зависимыми IOPS'ами ограничивается не производительностью СХД, а двумя параметрами: latency и уровнем зависимости IOPS'ов.

Начнём с latency. Latency — время выполнения запроса, задержка перед ответом. Обычно используют величину, «средняя задержка». Более продвинутые используют медиану среди всех операций за некоторый интервал (чаще всего за 1с). Latency очень сложная для измерения величина. Связано это с тем, что на любой СХД часть запросов выполняется быстро, часть медленно, а часть может попасть в крайне неприятную ситуацию и обслуживаться в десятки раз дольше остальных.

Интригу усиливает наличие очереди запросов, в рамках которой может осуществляться переупорядочивание запросов и параллельное их исполнение. У обычного SATA'шного диска глубина очереди (NCQ) — 31, у мощных систем хранения данных может достигать нескольких тысяч. (заметим, что реальная длина очереди (число ожидающих выполнения запросов) — это параметр скорее негативный, если в очереди много запросов, то они дольше ждут, т.е. тормозят. Любой человек, стоявший в час пик в супермаркете согласится, что чем длиннее очередь, тем фиговее обслуживание.

Latency напрямую влияет на производительность последовательного приложения, пример которого приведён выше. Выше latency — ниже производительность. При 5мс максимальное число запросов — 200 шт/с, при 20мс — 50. При этом если у нас 100 запросов будут обработаны за 1мс, а 9 запросов — за 100мс, то за секунду мы получим всего 109 IOPS, при медиане в 1мс и avg (среднем) в 10мс.

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

Пример: запуск приложения (типовая десктопная задача) практически на 100% последовательный. Прочитали приложение, прочитали список нужных библиотек, по-очереди прочитали каждую библиотеку… Именно потому на десктопах так пламенно любят SSD — у них микроскопическая задержка (микросекундная) на чтение — разумеется, любимый фотошоп или блендер запускается в десятые доли секунды.

Трешинг. Я думаю, с этим явлением пользователи десктопов знакомы даже больше, чем сисадмины. Жуткий хруст жёсткого диска, невыразимые тормоза, «ничего не работает и всё тормозит».

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

Вы будете удивлены, но любой диск или хранилище способны показывать БОЛЬШЕ IOPS'ов в состоянии thrashing, чем в нормальной загрузке. Причина проста: если в нормальном режиме очередь чаще всего пустая и кассир скучает, ожидая клиентов, то в условии трешинга идёт постоянное обслуживание. (Кстати, вот вам и объяснение, почему в супермаркетах любят устраивать очереди — в этом случае производительность кассиров максимальная). Правда, это сильно не нравится клиентам. И в хороших супермаркетах хранилищах такого режима стараются избегать. Если дальше начинать поднимать глубину очереди, то производительность начнёт падать из-за того, что переполняется очередь и запросы стоят в очереди чтобы встать в очередь (да-да, и порядковый номер шариковой ручкой на на руке).

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

Они говорят «у меня диск выдаёт 180 IOPS, так что если взять 10 дисков, то это будет аж 1800 IOPS». (Именно так думают плохие супермаркеты, сажая меньше кассиров, чем нужно). При этом latency оказывается запредельной — и «так жить нельзя».

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

И вот тут вот мы сталкиваемся со второй проблемой: а какого лимита? Ответить на этот вопрос теория не может — этот показатель является показателем качества обслуживания. Другими словами, каждый выбирает для себя сам.

Лично я для себя провожу тесты так, чтобы latency оставалась не более 10мс. Этот показатель я для себя считаю потолком производительности хранилища. (при этом в уме я для себя считаю, что предельный показатель, после которого начинают ощущаться лаги — это 20мс, но помните, про пример выше с 900 по 1мс и 10 по 100мс, у которого avg стала 10мс? Вот для этого я и резервирую себе +10мс на случайные всплески).

Выше мы уже рассмотрели вопрос с зависимыми и независимыми IOPS'ами. Производительность зависимых Iops'ов точно контролируется latency, и этот вопрос мы уже обсудили. А вот производительность в независимых iops'ах (т.е. при параллельной нагрузке), от чего она зависит?

Отдельно нужно говорить про ситуацию, когда хранилище подключено к хосту через сеть с использованием TCP. О TCP нужно писать, писать, писать и ещё раз писать. Достаточно сказать, что в линуксе существует 12 разных алгоритмов контроля заторов в сети (congestion), которые предназначены для разных ситуаций. И есть около 20 параметров ядра, каждый из которых может радикальным образом повлиять на попугаи на выходе (пардон, результаты теста).

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

Последний вопрос — это вопрос затенения шины. О чём речь? Если у нас ssd способна выдать 400 МБ/с, а мы её подключаем по SATA/300, то очевидно, что мы не увидим всю производительность. Причём с точки зрения latency проблема начнёт проявляться задолго до приближения к 300МБ/с, ведь каждому запросу (и ответу на него) придётся ждать своей очереди, чтобы проскочить через бутылочное горлышко SATA-кабеля.

Но бывают ситуации более забавные. Например, если у вас есть полка дисков, подключенных по SAS/300x4 (т.е. 4 линии SAS по 300МБ каждая). Вроде бы много. А если в полке 24 диска? 24*100=2400 МБ/с, а у нас есть всего 1200 (300х4).

Более того, тесты на некоторых (серверных!) материнских платах показали, что встроенные SATA-контроллеры часто бывают подключены через PCIx4, что не даёт максимально возможной скорости всех 6 SATA-разъёмов.

Повторю, главной проблемой в bus saturation является не выедание «под потолок» полосы, а увеличение latency по мере загрузки шины.

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

Во-вторых, во многих системах первая запись хуже последующих из-за всяких механизмов снапшотов, thin provision'а, дедупликации, компрессии, late allocation, sparse placement и т.д. Другими словами, тестировать следует после первичной записи.

В третьих — кеш. Если мы тестируем worst case, то нам нужно знать, как будет вести себя система когда кеш не помогает. Для этого нужно брать такой размер теста, чтобы мы гарантированно читали/писали «мимо кеша», то есть выбивались за объёмы кеша.

Кеш на запись — особая история. Он может копить все запросы на запись (последовательные и случайные) и писать их в комфортном режиме. Единственным методом worst case является «трешинг кеша», то есть посыл запросов на запись в таком объёме и так долго, чтобы write cache перестал стправляться и был вынужден писать данные не в комфортном режиме (объединяя смежные области), а скидывать случайные данные, осуществляя random writing. Добиться этого можно только с помощью многократного превышения области теста над размером кеша.

Вердикт — минимум x10 кеш (откровенно, число взято с потолка, механизма точного расчёта у меня нет).

Разумеется, тест должен быть без участия локального кеша ОС, то есть нам надо запускать тест в режиме, который бы не использовал кеширование. В линуксе это опция O_DIRECT при открытии файла (или диска).

Итого:
1) Мы тестируем worst case — 100% размера диска, который в несколько раз больше предположительного размера кеша на хранилище. Для десктопа это всего лишь «весь диск», для индустриальных хранилищ — LUN или диск виртуальной машины размером от 1Тб и больше. (Хехе, если вы думаете, что 64Гб RAM-кеша это много. ).
2) Мы ведём тест блоком в 4кб размером.
3) Мы подбираем такую глубину параллельности операций, чтобы latency оставалось в разумных пределах.

На выходе нас интересуют параметры: число IOPS, latency, глубина очереди. Если тест запускался на нескольких хостах, то показатели суммируются (iops и глубина очереди), а для latency берётся либо avg, либо max от показателей по всем хостам.

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

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

fio выполняет операции над указанным файлом/файлами. Вместо файла может быть указано устройство, т.е. мы можем исключить файловую систему из рассмотрения. Существует несколько режимов тестирования. Нас интересует randwrite, randread и randrw. К сожалению, randrw даёт нам зависимые iops'ы (чтение идёт после записи), так что для получения полностью независимого теста нам придётся делать две параллельные задачи — одна на чтение, вторая на запись (randread, randwrite).

И нам придётся сказать fio делать «preallocation». (см выше про трюки производителей). Дальше мы фиксируем размер блока (4к).

Ещё один параметр — метод доступа к диску. Наиболее быстрым является libaio, именно его мы и будем использовать.

При тесте диска запускать её надо от root'а.

тесты на чтение

Запуск: fio read.ini
Содержимое read.ini

Задача подобрать такой iodepth, чтобы avg.latency была меньше 10мс.

Тесты на запись

(внимание! Ошибётесь буквой диска — останетесь без данных)

Гибридные тесты

самая вкусная часть:
(внимание! Ошибётесь буквой диска — останетесь без данных)

Во время теста мы видим что-то вроде такого:


В квадратных скобках — цифры IOPS'ов. Но радоваться рано — ведь нас интересует latency.

На выходе (по Ctrl-C, либо по окончании) мы получим примерно вот такое:

^C
fio: terminating on signal 2


Нас из этого интересует (в минимальном случае) следующее:
read: iops=3526 clat=9063.18 (usec), то есть 9мс.
write: iops=2657 clat=12028.23

Не путайте slat и clat. slat — это время отправки запроса (т.е. производительность дискового стека линукса), а clat — это complete latency, то есть та latency, о которой мы говорили. Легко видеть, что чтение явно производительнее записи, да и глубину я указал чрезмерную.

В том же самом примере я снижаю iodepth до 16/16 и получаю:

read 6548 iops, 2432.79usec = 2.4ms
write 5301 iops, 3005.13usec = 3ms

Очевидно, что глубина в 64 (32+32) оказалась перебором, да таким, что итоговая производительность даже упала. Глубина 32 куда более подходящий вариант для теста.

Продолжаем серию заметок о жестких дисках, и сегодня мне бы хотелось обратить внимание на такой параметр HDD, как скорость вращения шпинделя, на который насажены собственно пластины с данными. Важен ли этот параметр?


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

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

Шпиндель должен вращаться заданное число оборотов. На сегодня есть несколько типов дисков, если смотреть на количество оборотов пластин:

7200 об/мин — 90% всех жестких дисков. Используются в основном в настольных ПК — они не критичны к потреблению энергии и им нужна высокая производительность. А производительность тем больше, чем больше оборотов делает шпиндель (это один из факторов). Можно сказать это золотая середина между скоростью и надежностью.

10 или 15 000 об/мин — Самые производительные диски, но и самые ненадежные… Высокое число оборотов приводит к сильному нагреву пластины — при этом угроза потери данных просто огромна! Ну и конечно — механический износ… Этот фактор, как говорится, никто не отменял. 😉

Итак, самыми приемлемыми на сегодня можно назвать диски с частотой вращения пластин 7200 оборотов в минуту. Нагрев приемлемый, и производительность выше, чем у дисков 5400 об/мин. Да и цена приемлемая. Высокооборотистые диски как правило очень дороги, а прирост производительности себя совершенно не оправдывает, из-за низкой надежности носителя.

А кому нужен жесткий диск, на котором опасно хранить информацию?

Устройство и типы жёстких дисков

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


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


На рынке сейчас распространены три типа жёстких дисков:

· HDD – жёсткий магнитный диск
· SSHD – гибридный жёстки диск, с небольшим объёмом твердотельной флэш-памяти (вернёмся к этому типу позже)
· SSD– полностью твердотельный диск

SSD диски пока достаточно дороги, но выигрывают у HDD в скорости, SSHD – компромисс между твердотельными носителями и магнитными. Если обобщить общие преимущества и недостатки HDD по сравнению с SSD, то получим следующий список.

Гибридные жёсткие диски SSHD


Гибридный жёсткий диск не поможет вам загрузить быстрее операционную систему, поскольку флэш-память начинает работать только после загрузки системы, но работу с программами ускорит заметно. Также разница в максимальной скорости передачи файлов с обычным HDD будет невелика – порядка 15%, но вот скорость доступа к файлам может отличаться в десятки раз.
SSHD – это хороший выбор для домашнего медиа-диска, если вы хотите повысить общую скорость работы при большом объёме накопителя, и если скорость для вас важна, но не критична. Пожалуй, лучший выбор из магнитных жёстких дисков. Хотя и минусы тоже есть – цена на SSHD почти вдвое выше, и очень мало моделей поддерживает оптимизацию под RAID-массив (хотя в этом у рядового пользователя редкая необходимость).

Какого объёма кэша хватит?

Речь идёт о объёме кэша 1-го уровня – его величина может колебаться, можно встретить модели с объёмами от 16 до 256 МБ. Это высокоскоростная флэш-память, которая ускоряет работу жёсткого диска, но это ускорение незначительно (порядка 5-10%), и происходит не для всех операций. Например, при последовательном чтении с диска или переносе больших файлов разница в кэше заметна не будет.

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


Также объём кэша зависит от общей ёмкости жёсткого диска – для моделей до 500 ГБ стоит ориентироваться на 16 Мб кэша, при объёме до 2 ТБ кэш обычно составляет 32-64 МБ. Модели с кэшем 64 МБ и меньше при объёме диска больше 2 ТБ могут оказаться не самыми быстрыми вариантами, стоит это учитывать.

Для объёма диска 2 ТБ и более стандартный объём кэша – 128 МБ, причём для объёмов в 6-10 ТБ предпочтительней, естественно, кэш 256 МБ.
Хотя сам параметр кэша и не очень критичен для скорости работы HDD, но при небольшой разнице в стоимости лучше рассматривать модель с большим объёмом.

Скорость вращения шпинделя – 5400 или 7200?

Один из главных параметров жёсткого диска, непосредственно влияющий на скорость работы: чем физически быстрее считывающая головка окажется в нужной позиции, тем быстрее произойдёт чтение/запись. На сегодняшний день существует средний разброс по скорости стандартных HDD – от 5400 до 7200 об/м. Есть также диски с оборотами в 10 000 об/мин и более, но они на сегодня теряют смысл из-за высокой цены, сопоставимой с SSD дисками или даже дороже, и при этом уступают им в скорости и надёжности.


Максимальная скорость передачи данных

Не всегда конечный параметр скорости передачи данных определяет скорость шпинделя – кроме этого есть ещё алгоритмы работы и внутренняя конструкция самого жёсткого диска. Например, на скорость может влиять количество магнитных дисков внутри – ёмкость в 1 ТБ может состоять как из 1-го диска, так и из 4-ёх по 250 ГБ.

Таким образом, по скорости можно выделить две группы HDD –со средними скоростями до 200 Мб/с, и более дорогая, но и самая скоростная среди магнитных жёстких дисков группа со скоростью более 200 Мб/с.

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

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

Ценовые категории

До 5000 рублей – можно позволить себе стандартный жёсткий магнитный диск ёмкостью до 2 ТБ, без кэша второго уровня. В этой группе лучше обратить внимание на модели ёмкостью в 500 ГБ – 1 ТБ. Они вряд ли будут отличаться высокими параметрами скорости, но это хороший и недорогой вариант, если вам нужен просто винчестер для рабочего компьютера.

От 10000 до 20000 рублей – неплохим приобретением станет уже на 4 ТБ. Возможности растут пропорционально вложенным средствам – доступный объём увеличивается вплоть до 6-8 ТБ, при этом можно найти модель с повышенной скоростью передачи данных, от 200 Мб/с.


Всех нас интересует какая скорость передачи данных в сети (в Интернет тоже), скорость записи на жесткий диск или флешку. Давайте попробуем разобраться, что же такое - биты и байты. Бит - это самая наименьшая единица измерения количества информации. Наравне с битом активно используется байт. Байт равен 8 бит.

Говоря проще, скорость подключения это количество получаемой или отправляемой вашим компьютером информации в единицу времени.

В качестве единицы времени в данном случае принято считать секунду, а в качестве количества информации - кило или мегабит . Например, если ваша скорость 128 Kbps - это означает, что ваше соединение имеет пропускную способность 128 килобит в секунду
">
или же 16 килобайт в секунду.

Единицы измерения информации:


(1 Байт = 8 бит).


Двоичная система счисления

Да еще производители внесли свой вклад в запутывание ситуации (одни считали 2х10 ,

другие 10х3 ).

Короче в итоге, чтобы окончательно убрать несоответствие, изменили не только названия,

но и приставки:


Но как Вы понимаете от этого опять же легче не стало.

В итоге на сегодняшний день имеются три варианта использования двоичных приставок.


Двоичные приставки в ОС Windows и производителей ОЗУ

1Кбайт (КБ или KB или Kbyte) = 1024байт

1Мбайт (МБ или MB или Mbyte) =1024Кбайт

1Гбайт (ГБ или MB или Gbyte) =1024Мбайт

1Тбайт (ТБ или TB или Tbyte) =1024Гбайт


Производители оперативной памяти используют тот же принцип.

Двоичные приставки в ОС Windows и у производителей ОЗУ 1 Кбайт (КБ или KB или

Kbyte) = 1024 байт

Использование десятичных приставок

Производители накопителей (жестких дисков (HDD), карт флэш - памяти, а также DVD и

BD - дисков) используют десятичные приставки. Эти же приставки используются при обозначении скорости передачи данных (100 Мбит/с =100 000 000 бит/с.

Десятичный приставки используют производители накопителей

(флешки, жесткие диски, DVD - диски)


1 килобайт (кБ или kB или kbyte) =1000 байт

1 мегабайт (МБ или MB или Mbyte)=1000килобайт=1 000 000байт

1гигабайт (ГБ или GB или Gbyte) =1000мегабайт=1 000 000Кбайт=1 000 000 000байт

1терабайт (ТБ или TB или Tbyte) =1000гигабайт=1 000 000Мегабайт=1 000 000 000Кбайт=1 000 000 000 000байт

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

Как Windows видит два жестких диска 1ТБ и 500ГБ

Производители считают, что в нем 1 000 000 000 килобайт, а ОС Windows делит на 1024 и получает 976 562 500 Кбайт ( кибибайт) или 931 Гбайт (гибибайт ).

Жесткий диск 500 ГБ отображается как 465.76 ГБ, а винчестер объемом 1000 ГБ

содержит всего 931.51 гигабайт, т. е .70 гигов никуда не делись, просто гиг и байт на жестком диске меньше, чем гиг а байт.

1КБ=1 кибибайт= 1024байт

1килобайт=1000байт


Теперь Вы знаете сколько байт в килобайте, а сколько в кибибайте

(бит в килобите и в кибибите)

В заключение, если у Вас на флешке вместо 16GB - 14.9GB, то 1.1 ГБ ''потерялся'' при пересчете в киб и байты.

Читайте также: