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

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

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

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

Глоссарий

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

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

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

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

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

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

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

  • Задержка

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

  • Глубина очереди

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

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

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

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

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

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

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

Емкость (ГиБ) Базовые операции ввода-вывода в секунду Ускорение операций ввода-вывода в секунду Кредиты на всплеск Пропускная способность (входящий и исходящий трафик)
100 3100 До 10 000 24 840 000 110 MiB/s
500 3500 До 10 000 23 400 000 150 МиБ/с
1024 4024 До 10 000 21 513 600 203 MiB/s
5,120 8120 До 15 360 26 064 000 613 МиБ/с
10 240 13 240 До 30 720 62 928 000 1,125 МиБ/с
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 мс для небольшого размера ввода-вывода).

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

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

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

  • Распределение операций 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 размера блока KiB.

Операция ввода-вывода Создание 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 секунд) до 17500 мс (17,5 секунд). Как показано в таблице ниже, при параллельном перемещении восьми файлов вместо одного файла можно переместить тот же объем данных в 87,5% меньше времени.

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

См. также