Общие сведения о характеристиках производительности дисков

Завершено

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

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

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

  • Операций ввода-вывода в секунду: количество запросов, отправляемых приложением на диски в одну секунду. Показатель IOPS напрямую влияет на производительность приложения. Некоторые приложения, например интернет-магазины, требуют большого количества операций ввода-вывода в секунду для обработки всех небольших и случайных запросов ввода-вывода, которые должны быстро обрабатываться для эффективной работы сайта. Чем больше это значение, тем выше производительность диска.
  • Пропускная способность. Пропускная способность — это объем данных, которые приложение отправляет на диски в указанный интервал. Пропускная способность также называется скоростью передачи данных и измеряется в МБ/с. Если приложение выполняет ввод-вывод крупных блоков данных, для него требуется высокая пропускная способность. Чем больше это значение, тем выше производительность диска.
  • Задержка. Задержка выражает время, которое требуется приложению для отправки запроса на диск и получения ответа. Задержка накладывает ограничения на количество эффективных операций ввода-вывода в секунду. Например, (с глубиной очереди 1), если диск может обрабатывать 5000 операций ввода-вывода в секунду, но каждая операция занимает 10 мс для обработки, ваше приложение будет ограничено 100 операций в секунду из-за времени обработки. Задержка значительно повышается, если включено кэширование узлов только для чтения.

Отличие IOPS и пропускной способности

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

Для дисков ценовой категории "Ультра" и управляемых дисков SSD уровня "Премиум" версии 2 оно работает немного иначе, так как можно независимо настраивать размер диска, операции ввода-вывода в секунду и пропускную способность. Корректировки операций ввода-вывода в секунду или пропускной способности для дисков ценовой категории "Ультра" и управляемых дисков SSD уровня "Премиум" версии 2 можно выполнять во время выполнения, не отключая диск от виртуальной машины.

Операции ввода-вывода в секунду у дисков категории "Ультра"

Диски категории "Ультра" поддерживают максимум 300 операций ввода-вывода в секунду/ГиБ, но не более 160 000 на диск. Для достижения диском целевого показателя количества операций убедитесь, что выбранное для диска значение не превышает ограничения виртуальной машины.

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

Минимальное гарантированное количество операций ввода-вывода в секунду на диск — 1 операция/ГиБ. При этом общее базовое минимальное значение — 100 операций ввода-вывода в секунду. Например, если вы подготовили диск категории "Ультра" размером 4 ГиБ, то минимальное количество операций ввода-вывода для этого диска составит 100, а не четыре.

Пропускная способность дисков ценовой категории "Ультра"

Ограничение пропускной способности одного диска ультра — 256 КиБ/с для каждого подготовленного ввода-вывода в секунду до 4000 МБ/с на диск (где МБ/с = 10^6 Байт в секунду). Минимальная гарантированная пропускная способность на диск составляет 4KiB/с для каждого подготовленного ввода-вывода в секунду с общим базовым показателем не менее 1 МБ/с.

Операции ввода-вывода в секунду SSD (цен. категория "Премиум") версии 2

Все диски SSD (цен. категория "Премиум") версии 2 имеют базовый показатель операций ввода-вывода в секунду 3000, который предоставляется бесплатно. После 6 ГиБ максимальное количество операций ввода-вывода в секунду, которое может иметь диск, увеличивается со скоростью 500 на ГиБ, до 80 000 операций ввода-вывода в секунду. Таким образом, диск объемом 8 ГБ может иметь до 4000 операций ввода-вывода в секунду, а диск емкостью 10 ГиБ — до 5000 операций ввода-вывода в секунду. Чтобы установить 80 000 операций ввода-вывода в секунду на диске, этот диск должен иметь емкость не менее 160 ГиБ. Увеличение количества операций ввода-вывода в секунду до более 3000 увеличивает стоимость вашего диска.

Пропускная способность SSD (цен. категория "Премиум") версии 2

Все диски SSD (цен. категория "Премиум") версии 2 имеют базовую пропускную способность 125 МБ/с, то есть бесплатно. После 6 ГиБ максимальная пропускная способность, которую можно установить, увеличивается на 0,25 МБ/с на каждый набор операций ввода-вывода в секунду. Если для диска доступно 3000 операций ввода-вывода в секунду, максимальная пропускная способность, которую он может установить, составляет 750 МБ/с. Чтобы увеличить пропускную способность этого диска выше 750 МБ/с, необходимо увеличить количество его операций ввода-вывода в секунду. Например, если вы увеличили число операций ввода-вывода в секунду до 4000, то максимальная пропускная способность, которую можно установить, составит 1000. 1200 МБ/с — это максимальная пропускная способность, поддерживаемая для дисков с 5000 операций ввода-вывода в секунду или более. Увеличение пропускной способности за пределами 125 МБ/с увеличивает цену диска.

Ограничения операций ввода-вывода на виртуальной машине

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

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

Например, предположим, что приложение выполняет запрос, который требует 15 000 операций ввода-вывода в секунду. Вы подготовили виртуальную машину Standard_D8s_v3 с одним диском ОС P30 и двумя дисками данных SSD (цен. категория "Премиум") с номером SKU P40. Каждый диск данных может поддерживать 7500 операций ввода-вывода в секунду, что будет соответствовать требованиям приложения, но сама виртуальная машина имеет ограничение в 12 800 операций ввода-вывода в секунду, и именно это значение будет фактически доступно приложению. Этот пример показан на следующей схеме.

Diagram that depicts virtual machine input output capping.

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

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

  • Процент использования кэшированных операций ввода-вывода в секунду виртуальной машины
  • Процент использования кэшированной пропускной способности виртуальной машины
  • Процент использования некэшированных операций ввода-вывода в секунду виртуальной машины
  • Процент использования некэшированной пропускной способности виртуальной машины

Ограничения операций ввода-вывода диска

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

Рассмотрим тот же пример, в котором приложению требуется 15 000 операций ввода-вывода в секунду на виртуальной машине, и вы выбрали следующую конфигурацию:

  • Виртуальная машина категории "Стандартный" D16s_v4 с 25 600 операций ввода-вывода в секунду
  • Диск ОС P20 с 2300 операций ввода-вывода в секунду
  • Два диска данных P30, по 5000 операций ввода-вывода в секунду каждый

В этом сценарии требования приложения будут разделены на три разных запроса:

  • 2300 операций ввода-вывода в секунду для диска ОС
  • По 5000 операций ввода-вывода в секунду для дисков данных

Общее количество операций ввода-вывода в секунду, которое виртуальная машина будет предоставлять приложению, — 12 300. Это сумма операций ввода-вывода в секунду, предоставляемых дисками операционной системы и данных.

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

Diagram that depicts disk input output capping.

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

  • Процент использования операций ввода-вывода в секунду для диска данных
  • Процент использования пропускной способности диска данных
  • Процент использования операций ввода-вывода в секунду для диска ОС
  • Процент использования пропускной способности диска ОС

Кэширование диска

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

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

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

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

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

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

Ограничения кэшированных и некэшированных данных виртуальных машин

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

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

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

Название размера виртуальной машины Максимальная пропускная способность кэшированного и временного хранилища: операций ввода-вывода в секунду/МБ/с (размер кэша в ГиБ) Максимальная пропускная способность дискового пространства в секунду/МБ/с
Standard_D2s_v3 4000/32 (50) 3200/48
Standard_D4s_v3 8000/64 (100) 6400/96
Standard_D8s_v3 16 000/128 (200) 12 800/192
Standard_D64s_v3 128 000/1024 (1600) 80 000/1200

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

В предыдущем примере с ограничением ввода-вывода виртуальной машины приложение требовало 15 000 операций ввода/вывода в секунду. Оба диска данных могут справиться с этим требованием, но виртуальная машина Standard_D8s_v3 может предоставлять только 12 800 операций ввода-вывода в секунду в некэшированном состоянии.

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