Повышение производительности файлового ресурса Azure МБ

В этой статье описывается, как повысить производительность для общих папок Azure класса Premium S МБ, включая использование S МБ Multichannel и кэширования метаданных (предварительная версия).

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

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

Оптимизация производительности

Следующие советы помогут оптимизировать производительность.

  • Убедитесь, что учетная запись хранения и клиент находятся в одном регионе Azure, чтобы уменьшить задержку в сети.
  • Используйте многопоточные приложения и распределите нагрузку по нескольким файлам.
  • Преимущества в плане производительности от SMB Multichannel растут по мере увеличения числа файлов, по которым распределена нагрузка.
  • Производительность для общих ресурсов уровня "Премиум" ограничена размером подготовленного общего ресурса (число операций ввода-вывода в секунду/исходящий трафик/входящий трафик) и лимитами для одного файла. Дополнительные сведения см. в разделе Основные сведения о подготовке общих папок уровня "Премиум".
  • Максимальная производительность для одного клиента виртуальной машины по-прежнему ограничена лимитами для виртуальной машины. Например, конфигурация Standard_D32s_v3 поддерживает максимальную пропускную способность 16 000 Мбит/с (или 2 Гбит/с), исходящий трафик из виртуальной машины (запись в хранилище) измеряется, входящий (чтение из хранилища) — нет. Производительность для общих папок зависит от ограничений сети компьютера, ЦП, доступной внутренней памяти и пропускной способности сети, размеров операций ввода-вывода, параллелизма, а также других факторов.
  • Первоначальный тест обычно является прогремом. Не карта результаты и повторите тест.
  • Если производительность ограничена одним клиентом и рабочей нагрузкой по-прежнему ниже ограничений подготовленной общей папки, вы можете добиться более высокой производительности, распространяя нагрузку по нескольким клиентам.

Связь между размерами операций ввода-вывода, пропускной способностью и ввода-вывода

Пропускная способность = размер операций ввода-вывода * операции ввода-вывода в секунду

Более высокие размеры операций ввода-вывода приводят к более высокой пропускной способности и будут иметь более высокую задержку, что приводит к снижению числа операций ввода-вывода в секунду. Меньшие размеры операций ввода-вывода приводят к повышению пропускной способности операций ввода-вывода, но приведет к снижению пропускной способности и задержки. Дополнительные сведения см. в статье "Общие сведения о производительности Файлы Azure".

Технология SMB Multichannel

Функция SMB Multichannel позволяет клиенту SMB 3.x устанавливать несколько сетевых подключений к общей папке SMB. Файлы Azure поддерживает S МБ Multichannel для общих папок класса Premium (общие папки в типе учетной записи хранения файла служба хранилища) для клиентов Windows. На стороне службы S МБ Multichannel по умолчанию отключена в Файлы Azure, но для включения ее нет дополнительных затрат.

Льготы

Функция SMB Multichannel позволяет клиентам использовать несколько сетевых подключений, обеспечивающих повышенную производительность на фоне снижения стоимости владения. Повышение производительности достигается путем агрегирования пропускной способности по нескольким сетевым адаптерам и использования поддержки масштабирования на стороне приема (RSS) для сетевых адаптеров для распределения нагрузки ввода-вывода по нескольким ЦП.

  • Повышенная пропускная способность: несколько подключений позволяют передавать данные по нескольким путям параллельно и тем самым значительно повышает производительность рабочих нагрузок, использующих большие размеры файлов с большими размерами операций ввода-вывода, и требует высокой пропускной способности с одной виртуальной машины или меньшего набора виртуальных машин. К таким рабочим нагрузкам относится мультимедиа и развлечения с созданием контента, а также перекодирование, геномика и анализ финансовых рисков.
  • Больше операций ввода-вывода. Поддержка RSS для сетевых карт позволяет эффективно распределять нагрузку между несколькими процессорами с несколькими подключениями. Это позволяет повысить скорость операций ввода-вывода в секунду и эффективно задействовать ЦП виртуальных машин. Это полезно для рабочих нагрузок с небольшими размерами ввода-вывода, такими как приложения базы данных.
  • Отказоустойчивость сети. Несколько подключений снижают риск нарушения работы, так как клиенты больше не зависят от одного подключения.
  • Автоматическая настройка. Если протокол SMB Multichannel включен на клиентах и в учетных записях хранения, осуществляется динамическое обнаружение существующих подключений и при необходимости создаются дополнительные пути подключения.
  • Оптимизация затрат. Рабочие нагрузки лучше масштабируются с одной виртуальной машины или небольшого набора виртуальных машин при подключении к общим ресурсам уровня "Премиум". Это снижает совокупную стоимость владения за счет сокращения числа виртуальных машин, необходимых для выполнения рабочей нагрузки и управления ею.

Дополнительные сведения о функции SMB Multichannel см. в документации по Windows.

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

Ограничения

В настоящее время режим SMB Multichannel для общих файловых ресурсов Azure имеет следующие ограничения.

  • Поддерживается только в клиентах Windows, использующих S МБ 3.1.1. К клиентским операционным системам SMB должны быть применены исправления до рекомендуемых уровней.
  • В настоящее время не поддерживается или рекомендуется для клиентов Linux.
  • Максимальное число каналов — четыре. Дополнительные сведения см. здесь.

Настройка

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

В клиентах Windows функция SMB Multichannel включена по умолчанию. Чтобы проверить конфигурацию, выполните следующую команду PowerShell:

Get-SmbClientConfiguration | Select-Object -Property EnableMultichannel

В учетной записи хранения Azure необходимо включить S МБ Multichannel. См. раздел Включение SMB Multichannel.

Отключение SMB Multichannel

В большинстве сценариев, в частности для многопоточных рабочих нагрузок, включение SMB Multichannel должно приводить к улучшению производительности для клиентов. Однако для некоторых конкретных сценариев, таких как однопоточные рабочие нагрузки или для тестирования, может потребоваться отключить S МБ Multichannel. Дополнительные сведения см. в разделе Сравнение производительности.

Проверка настройки SMB Multichannel

  1. Создайте общую папку класса Premium или используйте существующую общую папку premium.
  2. Убедитесь, что клиент поддерживает SMB Multichannel (для одного или нескольких сетевых адаптеров включено масштабирование на принимающей стороне). Дополнительные сведения см. в документации по Windows.
  3. Подключите общую папку к клиенту.
  4. Создайте нагрузку в приложении. Для создания нагрузки можно использовать средство копирования, например robocopy /MT, или инструмент наподобие Diskspd для чтения и записи файлов.
  5. Запустите PowerShell с правами администратора и выполните следующую команду: Get-SmbMultichannelConnection |fl.
  6. Найдите свойства MaxChannels и CurrentChannels.

Screenshot of Get-SMBMultichannelConnection results.

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

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

  • Многопотоковые и несколько файлов: в зависимости от шаблона рабочей нагрузки вы увидите значительное улучшение производительности операций чтения и записи операций ввода-вывода в нескольких каналах. Выигрыш в производительности находится в диапазоне от 2- до 4-кратного (по операциям ввода-вывода, пропускной способности и задержке). Для этой категории для оптимальной производительности следует включить SMB Multichannel.
  • Многопоточный или отдельный файл. В большинстве случаев использования в этой категории рабочие нагрузки будут использовать использование S МБ Multichannel, особенно если рабочая нагрузка имеет средний размер > ввода-вывода ~16k. Примеры сценариев, в которых проявляется преимущество SMB Multichannel, — резервное копирование или восстановление одного большого файла. Исключение, в котором может потребоваться отключить S МБ Multichannel, если рабочая нагрузка тяжела для небольших операций ввода-вывода. В этом случае может наблюдаться небольшая потеря производительности около 10 %. В зависимости от варианта использования вы можете распределить нагрузку по нескольким файлам или отключить эту функцию. Дополнительные сведения см. в разделе конфигурации.
  • Однопотоковые или несколько файлов или один файл. Для большинства однопоточных рабочих нагрузок есть минимальные преимущества производительности из-за отсутствия параллелизма. Как правило, существует небольшое снижение производительности примерно на 10 %, если включенА S МБ Multichannel. В этом случае лучше отключить SMB Multichannel, но за одним исключением. Если однопоточная рабочая нагрузка может распределять нагрузку между несколькими файлами и использовать в среднем больший размер операций ввода-вывода (>~16k), то в S МБ Multichannel должны быть незначительные преимущества производительности.

Конфигурация для теста производительности

Для схем, приведенных в этой статье, использовалась следующая конфигурация: одна виртуальная машина D32s v3 уровня "Стандартный" с одним сетевым адаптером с поддержкой RSS с четырьмя каналами. Загрузка была создана с помощью diskspd.exe, нескольких потоков с глубиной ввода-вывода 10 и случайных операций ввода-вывода с различными размерами ввода-вывода.

Размер Виртуальные ЦП Память, ГиБ Временное хранилище (SSD): ГиБ Макс. количество дисков данных Максимальная пропускная способность временного хранилища и кэшируемого хранилища: операций ввода-вывода в секунду/Мбит/с (размер кэша указан в ГиБ) Максимальная пропускная способность дисков без кэширования: операций ввода-вывода в секунду / МБит/с Макс. количество сетевых адаптеров Ожидаемая пропускная способность сети (Мбит/с)
Standard_D32s_v3 32 128 256 32 64000/512 (800) 51200/768 8 16 000

Screenshot that shows the performance test configuration.

Многопоточные или несколько файлов с помощью S МБ Multichannel

Для создания нагрузки использовалось 10 файлов с операциями ввода-вывода разного размера. Результаты тестов с увеличением масштаба и с включенным SMB Multichannel показали значительные улучшения как по операциям ввода-вывода, так и по пропускной способности. Результаты показаны на следующих схемах:

Diagram of performance.

Diagram of throughput performance.

  • На одном сетевом адаптере для операций чтения было замечено увеличение производительности в 2–3 раза, для записи — в 3–4 раза по операциям ввода-вывода и пропускной способности.
  • SMB Multichannel позволяет достичь лимита виртуальной машины по количеству операций ввода-вывода в секунду и пропускной способности даже с одним сетевым интерфейсом и четырьмя каналами.
  • Поскольку исходящий трафик (или операции чтения в хранилище) не измеряется, пропускная способность чтения смогла превысить опубликованный лимит виртуальной машины в 16 000 Мбит/с (2 ГиБ/с). При тесте достигнут показатель >2,7 ГиБ/с. Для входящего трафика (записи в хранилище) по-прежнему действуют ограничения виртуальных машин.
  • Распределение нагрузки по нескольким файлам позволило добиться значительного улучшения.

Пример команды, используемой в этом тестировании:

diskspd.exe -W300 -C5 -r -w100 -b4k -t8 -o8 -Sh -d60 -L -c2G -Z1G z:\write0.dat z:\write1.dat z:\write2.dat z:\write3.dat z:\write4.dat z:\write5.dat z:\write6.dat z:\write7.dat z:\write8.dat z:\write9.dat .

Многопоточная нагрузка/один файл с SMB Multichannel

Для создания нагрузки использовался один файл на 128 ГиБ. При включенной функции SMB Multichannel в многопоточной конфигурации с отдельным файлом в большинстве случаев наблюдались улучшения. Результаты показаны на следующих схемах:

Diagram of IOPS performance.

Diagram of single file throughput performance.

  • На одном сетевом адаптере с большим средним размером ввода-вывода (> ~16k) были значительные улучшения как при чтении, так и в записи.
  • Для небольших размеров ввода-вывода было незначительное влияние на производительность с поддержкой S МБ Multichannel. Этого можно избежать за счет распределения нагрузки по нескольким файлам или отключения функции.
  • Производительность при этом по-прежнему ограничена лимитами для отдельных файлов.

Кэширование метаданных для общих папок класса Premium S МБ

Кэширование метаданных — это улучшение для общих папок S МБ azure premium, направленных на сокращение задержки метаданных, увеличение доступности операций ввода-вывода в секунду и повышение пропускной способности сети. Эта предварительная версия улучшает следующие API метаданных и может использоваться как из клиентов Windows, так и для Linux:

  • Создание
  • При открытии
  • Закрытие
  • DELETE

Чтобы подключиться, зарегистрируйтесь в общедоступной предварительной версии , и мы предоставим вам дополнительные сведения. В настоящее время эта функция предварительной версии доступна только для общих папок класса Premium S МБ (общих папок в файле служба хранилища тип учетной записи хранения). Дополнительные затраты, связанные с использованием этой функции, отсутствуют.

Доступность по регионам

В настоящее время предварительная версия кэширования метаданных доступна только в следующих регионах Azure.

  • Восточная Австралия
  • Юго-Восточная Бразилия
  • Франция (юг)
  • Центрально-Западная Германия
  • Северная Швейцария
  • Центральная часть ОАЭ
  • Северная часть ОАЭ;
  • Центрально-западная часть США

Улучшения производительности с кэшированием метаданных

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

К типичным рабочим нагрузкам с большим объемом метаданных и шаблонам использования относятся:

  • Службы веб-приложений
  • Задачи DevOps
  • Индексирование и пакетные задания
  • Виртуальные рабочие столы с домашними каталогами или другими рабочими нагрузками, которые в основном взаимодействуют с большим количеством небольших файлов, каталогов или дескрипторов

На следующих схемах показаны потенциальные результаты.

Уменьшение задержки метаданных

Кэширование путей к файлам и каталогам для будущих подстановок позволяет сократить задержку при часто доступе к файлам и каталогам на 30 % или более для рабочих нагрузок с большим объемом метаданных.

Chart showing latency in milliseconds with and without metadata caching.

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

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

Chart showing available IOPS with and without metadata caching.

Увеличение пропускной способности сети

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

Chart showing network throughput with and without metadata caching.

Следующие шаги