Влияние кэширования на производительность диска в Azure

Завершено

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

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

Начнем с определения несколько терминов и соответствующих гарантий Azure.

Количество операций ввода-вывода в секунду

Выбранный тип хранилища (цен. категория "Стандартный" или "Премиум") определяет, насколько быстро находятся диски. Быстродействие измеряется в операциях ввода-вывода в секунду или IOPS.

Операций ввода-вывода в секунду — это количество запросов, которые диск может обрабатывать за одну секунду. Один запрос — это одна операция чтения или записи. Это измерение применяется непосредственно к хранилищу. Например, если у вас есть диск, который может выполнять 5000 операций ввода-вывода в секунду, это означает, что он теоретически может обрабатывать 5000 операций чтения и записи в секунду.

Примечание.

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

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

Операции ввода-вывода в секунду в Azure

При подключении диска хранилища уровня "Премиум" к высокомасштабируемой виртуальной машине Azure выполняет подготовку гарантированного количества операций ввода-вывода в секунду в соответствии со спецификацией диска. Например, диск P50 позволяет подготовить 7500 операций ввода-вывода в секунду. Для каждого размера высокомасштабируемой виртуальной машины также установлено ограничение на количество выполняемых операций ввода-вывода в секунду. Например, для виртуальной машины серии GS5 класса "Стандартный" установлено ограничение в 80 000 операций ввода-вывода в секунду.

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

Что такое пропускная способность?

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

Azure выполняет подготовку пропускной способности для дисков хранилища уровня "Премиум" в зависимости от спецификации этого диска. Например, диск P50 позволяет подготовить пропускную способность диска в 250 МБ в секунду. Каждая высокомасштабируемая виртуальная машина имеет установленное ограничение по пропускной способности. Например, максимальная пропускная способность виртуальной машины серии GS5 класса "Стандартный" составляет 2000 МБ в секунду.

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

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

Что такое задержка?

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

Задержка накладывает ограничения на количество операций ввода-вывода в секунду. Например, если диск может обрабатывать 5000 операций ввода-вывода в секунду, но каждая операция занимает 10 мс для обработки, наше приложение ограничено 500 операций в секунду из-за времени обработки. Этот пример является простой иллюстрацией; большая часть задержки времени значительно ниже. В конечном счете задержка и пропускная способность определяют, насколько быстро ваше приложение может обрабатывать данные из хранилища.

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

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

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

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

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

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