Общие сведения о производительности Файлы Azure

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

Применяется к

Тип общей папки SMB NFS
Стандартные общие папки (GPv2), LRS/ZRS Да Нет
Стандартные общие папки (GPv2), GRS/GZRS Да Нет
Общие папки уровня "Премиум" (FileStorage), LRS/ZRS Да Да

Глоссарий

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

  • Операций ввода-вывода в секунду (операций ввода-вывода в секунду)

    Количество операций ввода-вывода в секунду или операций ввода-вывода в секунду измеряет количество операций файловой системы в секунду. Термин "операции ввода-вывода" можно изменить с терминами "операция" и "транзакция" в документации по Файлы Azure.

  • Объем ввода-вывода

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

  • Пропускная способность

    Пропускная способность измеряет количество битов, считываемых или записанных в хранилище в секунду, и измеряется в мебибайтах в секунду (МиБ/с). Чтобы вычислить пропускную способность, умножьте число операций ввода-вывода на размер ввода-вывода. Например, 10 000 операций ввода-вывода в секунду * 1 МиБ = 10 ГиБ/с, а 10 000 операций ввода-вывода * 4 КиБ = 38 МиБ/с.

  • Задержка

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

  • Длина очереди

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

Выбор уровня производительности на основе шаблонов использования

Файлы Azure предоставляет ряд уровней хранилища, которые помогают снизить затраты, позволяя хранить данные на соответствующем уровне производительности и цене. На самом высоком уровне Файлы Azure предлагает два уровня производительности: "Стандартный" и "Премиум". Общие папки ценовой категории "Стандартный" размещаются в системе хранения на основе жестких дисков (HDD), а общие папки уровня "Премиум" поддерживаются твердотельными накопителями (SSD) для повышения производительности. Общие папки ценовой категории "Стандартный" имеют несколько уровней хранилища (оптимизированные для транзакций, горячие и холодные), между которыми можно легко перемещаться, чтобы максимально увеличить объем неактивных данных и цены на транзакции. Однако вы не можете перемещаться между уровнями "Стандартный" и "Премиум" без физического переноса данных между разными учетными записями хранения.

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

В следующей таблице приведены ожидаемые целевые показатели производительности между уровнями "Стандартный" и "Премиум". Дополнительные сведения см. в разделе Файлы Azure целевых показателей масштабируемости и производительности.

Требования к шаблону использования Standard Edition Премиальный
Задержка записи (однозначные миллисекунда) Да Да
Задержка чтения (однозначные миллисекунды) Нет Да

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

Емкость (ГиБ) Базовые показатели операций ввода-вывода в секунду Пиковое число операций ввода-вывода в секунду Кредиты пакета Пропускная способность (входящий и исходящий трафик)
100 3,100 До 10 000 24 840 000 110 МиБ/с
500 3500 До 10 000 23 400 000 150 МиБ/с
1024 4,024 До 10 000 21 513 600 203 МиБ/с
5,120 8,120 До 15 360 26 064 000 613 МиБ/с
10 240 13 240 До 30 720 62 928 000 1125 МиБ/с
33 792 36 792 До 100 000 227 548 800 3480 МиБ/с
51 200 54 200 До 100 000 164 880 000 5220 МиБ/с
102 400 100 000 До 100 000 0 10 340 МиБ/с

Контрольный список производительности

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

  • Чувствительность к задержке. Пользователи открывают файлы или взаимодействуют с виртуальными рабочими столами, работающими на Файлы Azure? Это примеры рабочих нагрузок, которые чувствительны к задержке чтения, а также имеют высокий уровень видимости для конечных пользователей. Эти типы рабочих нагрузок больше подходят для общих папок Azure уровня "Премиум", которые могут обеспечить задержку в один миллисекунд для операций чтения и записи (< 2 мс для небольшого размера ввода-вывода).

  • Требования к пропускной способности и операций ввода-вывода в секунду: Общие папки уровня "Премиум" поддерживают больше операций ввода-вывода в секунду и ограничения пропускной способности, чем стандартные общие папки. Дополнительные сведения см. в статье Целевые объекты масштабирования общих папок .

  • Длительность и частота рабочей нагрузки: Для коротких (в минутах) и редких (почасовых) рабочих нагрузок будет меньше шансов достичь верхних пределов производительности стандартных общих папок по сравнению с длительными, часто выполняемыми рабочими нагрузками. В общих папках уровня "Премиум" длительность рабочей нагрузки полезна при определении правильного профиля производительности на основе размера подготовки. В зависимости от того, сколько времени требуется для ускорения рабочей нагрузки и как долго она тратится ниже базовых операций ввода-вывода в секунду, вы можете определить, накапливаете ли вы достаточное количество кредитов для постоянного удовлетворения рабочей нагрузки в пиковое время. Поиск правильного баланса позволит сократить затраты по сравнению с чрезмерной подготовкой файлового ресурса. Распространенной ошибкой является выполнение тестов производительности в течение нескольких минут, что часто вводит в заблуждение. Чтобы получить реалистичное представление о производительности, обязательно протестируйте с достаточно высокой частотой и продолжительностью.

  • Параллелизация рабочей нагрузки: Для рабочих нагрузок, выполняющих операции параллельно, например с помощью нескольких потоков, процессов или экземпляров приложений на одном клиенте, общие папки уровня "Премиум" предоставляют явное преимущество по сравнению со стандартными общими папками: SMB Multichannel. Дополнительные сведения см. в статье Повышение производительности файлового ресурса Azure SMB .

  • Распределение операций API. Являются ли метаданные рабочей нагрузки большим количеством операций открытия и закрытия файлов? Это распространено для рабочих нагрузок, выполняющих операции чтения с большим количеством файлов. См . статью Метаданные или рабочая нагрузка с большим количеством пространств имен.

Задержка

Думая о задержке, важно сначала понять, как определяется задержка с помощью Файлы Azure. Наиболее распространенные измерения — это задержка, связанная с метриками сквозной задержки и задержки службы . Использование этих метрик транзакций может помочь определить задержку на стороне клиента и (или) проблемы с сетью, определив, сколько времени трафик приложения тратит на передачу в клиент и из клиента.

  • Сквозная задержка (SuccessE2ELatency) — это общее время, необходимое транзакции для выполнения полного кругового пути от клиента по сети до службы Файлы Azure и обратно клиенту.

  • Задержка службы (SuccessServerLatency) — это время, необходимое транзакции для кругового пути только в пределах службы Файлы Azure. Это не включает задержку клиента или сети.

    Схема сравнения задержки клиента и службы для Файлы Azure.

Разница между значениями SuccessE2ELatency и SuccessServerLatency заключается в задержке, возможно, вызванной сетью и (или) клиентом.

Задержку клиента часто путают с задержкой службы (в данном случае это Файлы Azure производительность). Например, если задержка службы сообщает о низкой задержке, а сквозная служба сообщает о очень высокой задержке для запросов, это означает, что все время тратится на передачу в клиент и из клиента, а не в Файлы Azure службу.

Кроме того, как показано на схеме, чем дальше вы находитесь от службы, тем медленнее будет задержка и тем сложнее достичь пределов производительности с любой облачной службой. Это особенно актуально при доступе к Файлы Azure из локальной среды. Хотя такие параметры, как ExpressRoute, идеально подходят для локальной среды, они по-прежнему не соответствуют производительности приложения (вычислений и хранилища), работающего исключительно в том же регионе Azure.

Совет

Использование виртуальной машины в Azure для тестирования производительности между локальной средой и Azure является эффективным и практическим способом создания базовых показателей сетевых возможностей подключения к Azure. Часто рабочая нагрузка может быть замедлена из-за недостаточного или неправильно перенаправленного канала ExpressRoute или VPN-шлюза.

Длина очереди

Глубина очереди — это количество невыполненных запросов ввода-вывода, которые может обслуживать ресурс хранилища. Поскольку диски, используемые системами хранения, превратились из шпинделей HDD (IDE, SATA, SAS) на твердотельные устройства (SSD, NVMe), они также развивались для поддержки большей глубины очередей. Рабочая нагрузка, состоящая из одного клиента, который последовательно взаимодействует с одним файлом в большом наборе данных, является примером низкой глубины очереди. В отличие от этого, рабочая нагрузка, поддерживающая параллелизм с несколькими потоками и несколькими файлами, может легко достичь высокой глубины очереди. Так как Файлы Azure — это распределенная файловая служба, которая охватывает тысячи узлов кластера Azure и предназначена для выполнения рабочих нагрузок в большом масштабе, рекомендуется создавать и тестировать рабочие нагрузки с высокой глубиной очередей.

Высокая глубина очереди может быть достигнута несколькими различными способами в сочетании с клиентами, файлами и потоками. Чтобы определить глубину очереди для рабочей нагрузки, умножьте количество клиентов на количество файлов на количество потоков (клиенты * файлы * потоки = глубина очереди).

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

Клиенты Файлы Потоки Глубина очереди
1 1 1 1
1 1 2 2
1 2 2 4
2 2 2 8
2 2 4 16
2 4 4 32
1 8 8 64
4 4 2 64

Совет

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

Однопоточные и многопоточные приложения

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

В этой таблице показано время (в миллисекундах), необходимое для создания одного файла размером 16 КиБ в общей папке Azure на основе однопоточного приложения, которое записывает блок размером 4 КиБ.

Операция ввода-вывода Создание 4 КиБ записи 4 КиБ записи 4 КиБ записи 4 КиБ записи Закрыть Всего
Поток 1 3 мс 2 мс 2 мс 2 мс 2 мс 3 мс 14 мс

В этом примере для создания одного файла 16 КиБ из шести операций потребуется около 14 мс. Если однопоточное приложение хочет переместить 10 000 файлов в общую папку Azure, это преобразуется в 140 000 мс (14 мс * 10 000) или 140 секунд, так как каждый файл перемещается последовательно по одному за раз. Помните, что время обслуживания каждого запроса в первую очередь зависит от того, насколько близко вычислительные ресурсы и хранилище расположены друг к другу, как описано в предыдущем разделе.

Используя восемь потоков вместо одного, указанную выше рабочую нагрузку можно уменьшить с 140 000 мс (140 секунд) до 17 500 мс (17,5 секунды). Как показано в таблице ниже, при перемещении восьми файлов параллельно, а не по одному файлу за раз, вы можете переместить тот же объем данных за 87,5 % меньше времени.

Операция ввода-вывода Создание 4 КиБ записи 4 КиБ записи 4 КиБ записи 4 КиБ записи Закрыть Всего
Поток 1 3 мс 2 мс 2 мс 2 мс 2 мс 3 мс 14 мс
Поток 2 3 мс 2 мс 2 мс 2 мс 2 мс 3 мс 14 мс
Поток 3 3 мс 2 мс 2 мс 2 мс 2 мс 3 мс 14 мс
Поток 4 3 мс 2 мс 2 мс 2 мс 2 мс 3 мс 14 мс
Поток 5 3 мс 2 мс 2 мс 2 мс 2 мс 3 мс 14 мс
Поток 6 3 мс 2 мс 2 мс 2 мс 2 мс 3 мс 14 мс
Поток 7 3 мс 2 мс 2 мс 2 мс 2 мс 3 мс 14 мс
Поток 8 3 мс 2 мс 2 мс 2 мс 2 мс 3 мс 14 мс

См. также раздел