Чему нас может научить старая реклама жёстких дисков

Автор оригинала: Marc Brooker
  • Перевод
Реклама старого компьютерного железа, и особенно жёстких дисков, часто встречается в забавных постах на компьютерных форумах и в нёрдской части Интернета1. Например, пару дней назад Гленн Локвуд опубликовал твит с этой старой рекламой:


По крайней мере, это не реклама HAMR-диска. 10 тысяч долларов по сегодняшним ценам.

Очевидно, что в начале 80-х эти диски обеспечивали скорость поиска 70 мс, скорости доступа порядка 900 КБ/с и объём до 10 МБ. Смехотворно, не правда ли? Но в то же время подобные рекламные объявления скрывают в себе намёки на очень важные тенденции, как ничто другое способные объяснить дизайн систем. Чтобы понять, что происходит, сравним этот дряхлый 10-мегабайтный диск с современным. Большинство потребителей уже не покупает магнитные диски, поэтому для сравнения возьмём ещё и SSD.

XCOMP 10MB Современный HDD Изменение Современный SSD Изменение
Объём 10 МБ 18 ТБ В 1,8 миллиона раз 2 ТБ В 200 000 раз
Задержки 70 мс 5 мс В 14 раз 50 мкс В 1400 раз
Пропускная способность 900 КБ/с 220 МБ/с В 250 раз 3000 МБ/с В 3300 раз
IOPS/ГиБ (QD1) 1400 0,01 В 0,00007 раз 10 В 0,007 раз

Или около того2. Начнём с магнитного диска: мы получили ОГРОМНЫЙ рост объёма хранения, большой рост пропускной способности, скромное снижение задержек и значительное снижение операций произвольного ввода-вывода на единицу хранения. Вас может это удивить, но SSD, несмотря на гораздо более высокую скорость, по всем аспектам вполне вписывается в общую тенденцию.

Это наблюдение ни в коей мере не является новым. 15 лет назад великий Джим Грей сказал «диск — это лента». Дэвид Паттерсон (ну знаете, лауреат премии Тьюринга, один из изобретателей RISC, и т.д.) написал в 2004 году великолепную статью Latency Lags Bandwidth, в которой сделал то же самое наблюдение. Он писал:

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

и

За время, когда пропускная способность успела удвоиться, задержки снизились не больше, чем на коэффициент 1,2-1,4.

Может показаться, что разница не так велика, но помните, что мы говорим здесь об экспоненциальном росте, а это такая штука, которая взорвёт вам мозг. Если перемножить замеченную Паттерсоном тенденцию, то к тому времени, когда пропускная способность увеличится в 1000 раз, задержки снизятся всего в 6-30 раз. Примерно то же мы видим и в таблице: повышение пропускной способности в 250 раз и снижение задержек в 14 раз. Снижение задержек отстаёт от роста пропускной способности. Пропускная способность отстаёт от объёма.

Можно рассмотреть это на примере длительности считывания всего диска целиком последовательным потоком путём чтения произвольных блоков по 4 КБ. С диском 1980-х это заняло бы примерно 3 минуты. SSD потребовалось бы около 8 часов. Современному жёсткому диску потребуется около 10 месяцев. Ни для кого не является неожиданностью, что произвольный ввод-вывод небольшого объёма данных является медленным, но не каждый понимает, насколько он медленный. И эта проблема становится всё серьёзнее экспоненциальными темпами.

Ну и что с того?


Каждая создаваемая людьми система, хранящая своё состояние, имеет определённый компромисс между задержками, пропускной способностью и затратами на хранение. Например, стирающее кодирование 4+1 в стиле RAID5 позволяет системе пережить потерю одного диска. 2-replication может делать то же самое, но с увеличением в 1,6 затрат на хранение и с уменьшением до 2/5 затрат IOPS. Журналируемые базы данных, файловые системы и форматы файлов делают предположения о стоимости хранения, пропускной способности и произвольного доступа. Изменение соотношения между параметрами оборудования требует перепроектирования таких систем для соответствия параметрам нового оборудования: вчерашние ПО и методики просто не так эффективны, как сегодняшние системы.

Ещё один важный аспект — параллельность. Я немного сжульничал, выбрав использование QD1. Это очередь глубиной в единицу. Отправляем запрос ввода-вывода, ждём завершения операции, отправляем следующий. Реальные устройства хранения способны на большее, если одновременно передавать им несколько запросов ввода-вывода. Жёсткие диски работают быстрее благодаря трюкам с планированием, позволяющим им сначала обрабатывать «ближние» операции ввода-вывода. Операционные системы уже давно выполняли планирование ввода-вывода, а в последние два десятка лет диски стали достаточно умными, чтобы делать это самостоятельно. С другой стороны, SSD имеют реальную внутреннюю параллельность, потому что они не ограничены физическими головками чтения-записи. Благодаря большому количеству одновременных операций ввода-вывода в SSD производительность может повыситься аж в 50 раз. В 80-х годах параллельность ввода-вывода не имела значения, но сегодня она чрезвычайно важна.

Из этого практикующий проектировщик систем может сделать два вывода. Во-первых, стоит уделять внимание тенденциям развития оборудования. Будьте всегда любопытными и время от времени обновляйте собственные внутренние константы. Экспоненциальный рост может означать, что ваша мысленная модель производительности «железа» может быть совершенно ошибочной, даже если она устарела всего на пару лет. Во-вторых, дизайн систем устаревает. Компромиссы в реальном мире меняются, как по описанным причинам, так и по многим другим. Структуры данных и стратегии их хранения, описанные в вашем любимом учебнике, скорее всего, не пережили проверку временем. API ввода-вывода POSIX уж точно её не пережил.

Примечания


  1. См., например, эту тему на Reddit, форумы unraid, этот сайт, и так далее. Информация есть повсюду.
  2. Я взял эти числа из головы, но думаю, что они более-менее соответствуют современным распространённым NVMe и магнитным дискам корпоративного уровня.



На правах рекламы


Эпичные серверы — это быстрые VDS с мощными процессорами семейства AMD EPYC и надёжным дисковым хранилищем на основе NVMe дисков Intel. Каждый может создать тариф под себя!

VDSina.ru
Серверы в Москве и Амстердаме

Комментарии 10

    +3

    Это написано еще в книге Таненбаума, "Современные ОС".

      +5

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


      • Оперативная память — каждый переход DDR2->DDR3->DDR4->DDR5 только добавляет наносекунды.
      • Сеть — для проводной/оптики ограничение скорость света, а для более "модных" беспроводной и сотовой пинги просто гигантские по сравнению с медью/оптикой. А так как "беспроводных" всё больше, то пинг среднего устройства всё растёт.
      • PCI-Express latency особо не меняется, но, к счастью и редко узким местом бывает.
      • Процессор — давно упёрся в память и внутрение/внешние шины. Интересно, что в современных процессорах AMD и Intel минимальная core to core задержка совсем может быть не равна средней и максимальной.

      Прогресса в latency нет, и особого уже не предвидится никогда. Отсюда, например, и асинхронное программирование (latency уже не улучшить, так давайте не терять впустую время ожидания).

        0
        В погоне за latency можно использовать память SRAM и медные каналы связи, сокращая количество маршрутизаторов. Но это получается дороже, чем нарастить объемы дешевого железа и нанять группу студентов с этим самым асинхронным программированием. Если надо будет уменьшать задержки всерьез, то резервы для этого есть. Просто это сейчас не нужно. Может быть никогда не будет нужно. Зато нужны объемы.
          0
          Интересно конечно, но мед и оптика — самая меденная среда в пане задержки. Скорость света зависит от плотности среды в которой распространяется сигнал, в меди она наименьшая а радиомосты — самые быстрые по задержке. Сотовая связь не показатель, там между вышками и сетью стоит слишком много оборудования и на каждом «стыке» происходит буферизация, которая увеличивает задержку.
          0
          При такой цене хранения напечатать на бумаге было бы на 2 порядка дешевле: ) Должно быть очень коммерчески эффективные сценарии предполагали применение такого чудо-носителя.
            +2
            Чтение с бумаги на 3-4 порядка медленее.
            Такие диски использовалися в мейнфремах класса отделения банка, 10тыс в общей стоимости системы не сильно были заметны.
            0
            стирающее кодирование 4+1

            Чего?
              0
              в пятом рейде по-моему XOR. может покусали переводчика?
                0
                erasure coding?
                0
                Про 900 кб/с сомнения большие. Поверю в 90. Или это был жесткий диск для сервера? :)

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое