Повышение производительности общих папок SMB Azure

В этой статье объясняется, как повысить производительность общих папок Azure уровня "Премиум", в том числе с помощью SMB Multichannel и кэширования метаданных (предварительная версия).

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

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

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

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

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

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

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

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

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

SMB Multichannel позволяет клиенту SMB установить несколько сетевых подключений к общей папке SMB. Файлы Azure поддерживает SMB Multichannel в общих папках класса Premium для клиентов Windows. На стороне службы SMB Multichannel теперь включена по умолчанию для всех созданных учетных записей хранения во всех регионах Azure. Для включения SMB Multichannel нет дополнительных затрат.

Льготы

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

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

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

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

Ограничения

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

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

Настройка

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

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

Get-SmbClientConfiguration | Select-Object -Property EnableMultichannel

Если SMB Multichannel не включена в учетной записи хранения Azure, см. сведения о состоянии SMB Multichannel.

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

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

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

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

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

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

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

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

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

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

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

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

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

Схема производительности по пропускной способности.

  • На одном сетевом адаптере для операций чтения было замечено увеличение производительности в 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 в многопоточной конфигурации с отдельным файлом в большинстве случаев наблюдались улучшения. Результаты показаны на следующих схемах:

Схема производительности по операциям ввода-вывода в секунду.

Схема производительности по пропускной способности с одним файлом.

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

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

Кэширование метаданных — это улучшение общих папок Azure уровня "Премиум", направленных на улучшение следующих возможностей:

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

Эта предварительная версия улучшает следующие API метаданных и может использоваться как из клиентов Windows, так и для Linux:

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

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

Регистрация для функции

Чтобы приступить к работе, зарегистрируйтесь для этой функции с помощью портал Azure или Azure PowerShell.

  1. Войдите на портал Azure.
  2. Найдите и выберите предварительные версии функций.
  3. Выберите фильтр "Тип" и выберите Microsoft.Storage.
  4. Выберите предварительную версию кэша метаданных службы "Премиум" Azure, а затем нажмите кнопку "Регистрация".

Внимание

Разрешите подключение учетных записей через 1–2 дня после завершения регистрации.

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

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

  • Восточная Азия
  • Центральная Австралия
  • Восточная Австралия
  • Юго-Восточная часть Австралии
  • Южная Бразилия
  • Центральная Канада
  • Восточная Канада
  • Северная Европа
  • Центральная Франция
  • Центрально-Западная Германия
  • Восточная Япония
  • Западная Япония
  • Западная Индия Jio
  • Центральная Индия
  • Южная Индия
  • Западная Индия
  • Израиль, центральный регион
  • Северная Италия
  • Республика Корея, центральный регион
  • Республика Корея, южный регион
  • Центральная Мексика
  • Восточная Норвегия;
  • Центральная Польша
  • Центральный Катар
  • Центральная Испания
  • Центральная Швеция
  • Северная Швейцария
  • Северная часть ОАЭ;
  • западная часть Соединенного Королевства
  • южная часть Соединенного Королевства
  • Центрально-северная часть США
  • Центрально-южная часть США
  • Центрально-западная часть США
  • Западная часть США 2
  • Западная часть США 3

Совет

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

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

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

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

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

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

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

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

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

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

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

Диаграмма, показывающая доступные операции ввода-вывода в секунду с кэшированием метаданных и без нее.

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

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

Диаграмма с пропускной способностью сети с кэшированием метаданных и без нее.

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