Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: ✔️ общие папки SMB на уровне накопителей SSD
В этой статье объясняется, как повысить производительность файловых ресурсов Azure SMB класса премиум (на базе SSD), включая использование многоканального режима SMB и кэширование метаданных.
Оптимизация производительности
Следующие советы помогут оптимизировать производительность.
- Убедитесь, что учетная запись хранения и клиент находятся в одном регионе Azure, чтобы уменьшить задержку в сети.
- Используйте многопоточные приложения и распределяйте нагрузку по нескольким файлам.
- Преимущества производительности SMB Multichannel увеличиваются с числом файлов, распространяющих нагрузку.
- Производительность общего ресурса SSD ограничена зарезервированным размером общего ресурса, включая операции ввода-вывода в секунду и пропускную способность, а также ограничения на один файл. Дополнительные сведения см. в статье о модели подготовки версии 1.
- Максимальная производительность одного клиента виртуальной машины по-прежнему привязана к ограничениям виртуальных машин. Например, Standard_D32s_v3 поддерживает максимальную пропускную способность примерно 1,86 ГиБ/с. Поступающий трафик (запись в хранилище) измеряется, но исходящий трафик (чтение из хранилища) не измеряется. Производительность общей папки зависит от ограничений сети компьютера, центральных процессоров, доступной пропускной способности внутренней сети, размеров ввода-вывода, параллелизма и других факторов.
- Первоначальный тест обычно является разминкой. Удалите результаты и повторите тест.
- Если производительность ограничена одним клиентом и нагрузка все еще ниже предусмотренных лимитов производительности, вы можете достичь более высокой производительности, распределив нагрузку по нескольким клиентам.
- Используйте зональное размещение , чтобы выбрать конкретную зону доступности, в которой находится учетная запись хранения. Это позволяет размещать виртуальные машины в той же зоне доступности, что и хранилище, что может снизить задержку до 30 процентов.
Связь между IOPS, пропускной способностью и размерами операций ввода-вывода
Пропускная способность = размер операций ввода-вывода * операций ввода-вывода в секунду
Более высокие размеры операций ввода-вывода приводят к повышению пропускной способности и имеют более высокую задержку, что приводит к снижению числа операций ввода-вывода в секунду. Меньший размер операций ввода-вывода приводит к увеличению количества операций ввода-вывода в секунду, но приводит к снижению пропускной способности и задержки. Дополнительные сведения см. в статье "Общие сведения о производительности файлов Azure".
SMB Multichannel
SMB Multichannel позволяет клиенту SMB устанавливать несколько сетевых подключений к общей папке SMB, повышая пропускную способность и устойчивость. Файлы Azure поддерживают SMB Multichannel в общих папках SSD для клиентов SMB Windows и Linux. Сведения о поддерживаемых версиях ОС Linux и подробной конфигурации см. в разделе "Многоканальный модуль Linux SMB".
Поддержка многоканальности SMB в Linux
Azure Files поддерживает SMB Multichannel с собственными SMB-клиентами для Linux на следующих дистрибутивах:
- Ubuntu 24.04 AKS: 6.8.0-1042
- Виртуальные машины Ubuntu 24.04: 6.14.0-1017
- Виртуальные машины Ubuntu 22.04: 6.8.0-1044
- AzLinux 3.0 (виртуальные машины и AKS): 6.6.106.1
- RHEL 9.7: 5.14.0-611.5.1.el9_7
- RHEL 10.1: 6.12.0-124.8.1.el10_1
Эти клиенты должны работать с соответствующим стеком ядра и служебными программами CIFS, поддерживающими мультиканал. Поддержка SMB Multichannel в Linux позволяет масштабировать производительность, аналогичную Windows, установив несколько параллельных TCP-подключений к одной конечной точке общей папки.
Предпосылки
Ниже приведены предварительные требования для использования SMB Multichannel с Linux.
- Ядро с поддержкой многоканальной поддержки SMB (см. раздел поддержки SMB Multichannel в Linux)
- SMB 3.1.1
- Порт 445/TCP открыт между клиентом и конечной точкой службы "Файлы Azure"
- Убедитесь, что масштабирование на стороне клиента (RSS) включено для поддержки нескольких очередей
Пример команды подключения
Ниже приведен пример команды подключения для использования SMB Multichannel с Linux.
mount -t cifs //<storageaccount>.file.core.windows.net/<share> /mnt/azfiles \
-o vers=3.1.1,username=<account>,password=<key>,dir_mode=0777,file_mode=0777, \
multiuser,serverino,actimeo=30,max_channels=4
Льготы
Функция SMB Multichannel позволяет клиентам использовать несколько сетевых подключений, обеспечивающих повышенную производительность на фоне снижения стоимости владения. Повышение производительности достигается путем агрегирования пропускной способности по нескольким сетевым адаптерам и использования поддержки масштабирования на стороне приема (RSS) для сетевых адаптеров для распределения нагрузки ввода-вывода по нескольким ЦП.
- Повышенная пропускная способность: несколько подключений позволяют передавать данные по нескольким путям параллельно и тем самым значительно повышает производительность рабочих нагрузок, использующих большие размеры файлов с большими размерами операций ввода-вывода, и требует высокой пропускной способности с одной виртуальной машины или меньшего набора виртуальных машин. К таким рабочим нагрузкам относится мультимедиа и развлечения с созданием контента, а также перекодирование, геномика и анализ финансовых рисков.
- Более высокий объем операций ввода-вывода в секунду: возможность RSS сетевого адаптера позволяет эффективно распределять нагрузку между несколькими ЦП с несколькими подключениями. Это помогает добиться более высокого масштаба IOPS и эффективно использовать CPU виртуальных машин. Это полезно для рабочих нагрузок с небольшими размерами ввода-вывода, такими как приложения базы данных.
- Отказоустойчивость сети. Несколько подключений устраняют риск сбоя, так как клиенты больше не полагаются на отдельное подключение.
- Автоматическая настройка: если для клиентов и учетных записей хранения включена мультиканель SMB, она позволяет динамически обнаруживать существующие подключения и создавать дополнительные пути подключения по мере необходимости.
- Оптимизация затрат. Рабочие нагрузки могут достичь более высокого масштаба из одной виртуальной машины или небольшого набора виртуальных машин при подключении к общим папкам SSD. Это снижает совокупную стоимость владения за счет сокращения числа виртуальных машин, необходимых для выполнения рабочей нагрузки и управления ею.
- Масштабирование производительности клиента Linux: Клиенты SMB Linux теперь могут использовать многоканальные функции для увеличения пропускной способности и операций ввода-вывода в секунду, подобно Windows.
- Согласованность кроссплатформенных сред: включает гибридные среды с клиентами Windows и Linux, которые обеспечивают оптимальную производительность.
- Устойчивость: несколько каналов повышают отказоустойчивость по сравнению с разнородными сетями.
Дополнительные сведения о SMB Multichannel см. в документации по Windows.
Эта функция обеспечивает более высокую производительность для многопоточных приложений, но обычно не помогает приложениям с одним потоком. Дополнительные сведения см. в разделе сравнения производительности .
Ограничения
В настоящее время режим SMB Multichannel для общих файловых ресурсов Azure имеет следующие ограничения.
- Доступно только для файловых ресурсов SSD. Недоступно для общих папок HDD.
- Поддерживается только для клиентов, использующих SMB 3.1.1. К клиентским операционным системам SMB должны быть применены исправления до рекомендуемых уровней.
- Максимальное количество каналов — четыре. Дополнительные сведения см. здесь.
Конфигурация Windows
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
- Создайте общую папку SSD или используйте существующую общую папку SSD.
- Убедитесь, что клиент поддерживает SMB Multichannel (для одного или нескольких сетевых адаптеров включено масштабирование на принимающей стороне). Дополнительные сведения см. в документации по Windows .
- Подключите файловую долю к клиенту.
- Создайте нагрузку в приложении. Для создания нагрузки можно использовать средство копирования файлов, например, robocopy /MT, или любое другое средство производительности, такое как Diskspd, для чтения и записи файлов.
- Запустите PowerShell с правами администратора и выполните следующую команду:
Get-SmbMultichannelConnection |fl. - Найдите свойства MaxChannels и CurrentChannels .
Сравнение производительности
Существует две категории шаблонов рабочих нагрузок чтения и записи: однопотоковые и многопоточные. Большинство рабочих нагрузок используют по несколько файлов, но в некоторых случаях рабочая нагрузка работает с одним файлом в общей папке. В этом разделе рассматриваются различные варианты использования и влияние на производительность для каждого из них. Как правило, большинство рабочих нагрузок являются многопоточными и распределяют нагрузку по нескольким файлам, что позволяет значительно повысить производительность при использовании SMB Multichannel.
- Многопоточные/многофайловые операции: в зависимости от шаблона рабочей нагрузки, вы заметите значительное улучшение производительности операций ввода-вывода при чтении и записи через несколько каналов. Выигрыш в производительности варьируется в диапазоне от 2 до 4 раз по количеству операций ввода-вывода в секунду, пропускной способности и задержке. Для этой категории для оптимальной производительности следует включить SMB Multichannel.
- Многопоточное использование/один файл: в большинстве случаев использования в этой категории рабочие нагрузки получают преимущества от включения SMB Multichannel, особенно если у рабочей нагрузки средний размер ввода-вывода составляет ~16k. Примеры сценариев, в которых проявляется преимущество SMB Multichannel, — резервное копирование или восстановление одного большого файла. Исключением, когда может потребоваться отключить SMB Multichannel, является случай, когда ваша рабочая нагрузка связана с небольшими объемами операций ввода-вывода. В этом случае может наблюдаться небольшая потеря производительности около 10%. В зависимости от варианта использования вы можете распределить нагрузку по нескольким файлам или отключить эту функцию.
- Однопотоковая обработка/несколько файлов или один файл: Для большинства однопоточных рабочих нагрузок минимальные преимущества по производительности связаны с отсутствием параллелизма. Обычно при включении многоканальности SMB наблюдается небольшое снижение производительности на 10%. В этом случае лучше отключить SMB Multichannel, но за одним исключением. Если однопоточная рабочая нагрузка может распределять нагрузку между несколькими файлами и использовать в среднем больший размер ввода-вывода (больше 16 КИБ), то в SMB Multichannel должны быть незначительные преимущества производительности.
Конфигурация для теста производительности
Для схем, приведенных в этой статье, использовалась следующая конфигурация: одна виртуальная машина D32s v3 уровня "Стандартный" с одним сетевым адаптером с поддержкой RSS с четырьмя каналами. Загрузка была создана с помощью diskspd.exe в многопоточном режиме с глубиной очереди ввода-вывода 10 и случайными операциями ввода-вывода с различными размерами ввода-вывода.
Многопоточная обработка и работа с несколькими файлами через SMB Multichannel
Нагрузка была создана для 10 файлов с различными размерами операций ввода-вывода. Результаты тестирования при масштабировании, проведенные с включенным SMB Multichannel, показали значительные улучшения как по IOPS, так и по пропускной способности. Результаты показаны на следующих схемах:
- На одном сетевом адаптере для операций чтения было замечено увеличение производительности в 2–3 раза, для записи — в 3–4 раза по операциям ввода-вывода и пропускной способности.
- SMB Multichannel позволяет достичь лимита виртуальной машины по количеству операций ввода-вывода в секунду и пропускной способности даже с одним сетевым интерфейсом и четырьмя каналами.
- Так как исходящий трафик (считывает из хранилища) не измеряется, пропускная способность чтения могла превысить опубликованный предел виртуальной машины примерно в 1,86 ГиБ/с, достигая более 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 тесты на масштабируемость с использованием многопоточности и отдельных файлов в большинстве случаев показывали улучшения. Результаты показаны на следующих схемах:
- На одном сетевом адаптере с большим средним размером ввода-вывода (больше 16 КИБ), были значительные улучшения в операциях чтения и записи.
- Для небольших размеров ввода-вывода было незначительное влияние примерно на 10% на производительность с поддержкой SMB Multichannel. Этого можно избежать за счет распределения нагрузки по нескольким файлам или отключения функции.
- Производительность по-прежнему привязана к ограничениям одного файла.
Кэширование метаданных для общих папок SSD
Кэширование метаданных — это улучшение файловых ресурсов SSD Azure, которая снижает задержку метаданных и увеличивает пределы масштабирования метаданных. Эта функция увеличивает стабильность задержки и доступность IOPS, а также повышает пропускную способность сети. Клиенты Windows и Linux могут использовать его.
Эта функция повышает производительность следующих API метаданных:
- Создать
- Открыть
- Закрытие
- Удалить
В настоящее время эта функция доступна только для файловых ресурсов SSD. С этой функцией не связаны дополнительные затраты. Вы также можете зарегистрировать, чтобы увеличить ограничения обработки файлов для общих папок SSD (предварительная версия).
Регистрация для функции кэширования метаданных
Чтобы приступить к работе, зарегистрируйтесь для этой функции с помощью портал Azure или Azure PowerShell.
- Войдите на портал Azure.
- Найдите и выберите предварительные версии функций.
- Выберите фильтр "Тип " и выберите Microsoft.Storage.
- Выберите кэш метаданных Azure Premium Files и затем выберите Регистрация.
Внимание
Несмотря на то, что функции перечислены в разделе "Предварительные версии", мы выполняем соглашения об уровне обслуживания согласно общедоступной версии. После регистрации функции обратитесь к группе файлов Azure для получения дополнительных инструкций.
Улучшения производительности с кэшированием метаданных
Большинство рабочих нагрузок или шаблонов использования, содержащих метаданные, могут воспользоваться кэшированием метаданных. Чтобы определить, содержит ли рабочая нагрузка метаданные, можно использовать Azure Monitor для разделения транзакций по измерению API.
К типичным рабочим нагрузкам с большим объемом метаданных и шаблонам использования относятся:
- Службы веб-приложений
- Задачи DevOps
- Индексирование и пакетные задания
- Виртуальные рабочие столы с домашними каталогами или другими рабочими нагрузками, которые в основном взаимодействуют с большим количеством небольших файлов, каталогов или дескрипторов
На следующих схемах показаны потенциальные результаты.
Уменьшение задержки метаданных
Кэширование путей к файлам и каталогам для последующих запросов позволяет сократить задержку при частом доступе к файлам и каталогам на 30% или более для нагрузок с интенсивным использованием метаданных.
Увеличение количества операций ввода-вывода в секунду (IOPS)
Кэширование метаданных может увеличить доступные IOPS более чем на 60% для рабочих нагрузок с интенсивным использованием метаданных.
Диаграмма, показывающая доступные IOPS с кэшированием метаданных и без кэширования.
Увеличение пропускной способности сети
Кэширование метаданных может увеличить пропускную способность сети более чем на 60% для рабочих нагрузок с большим объемом метаданных.
Регистрация для увеличения ограничений дескриптора файлов (предварительная версия)
Чтобы увеличить максимальное количество одновременных дескрипторов на файл и каталог для общих папок SSD SMB с 2000 до 10 000, зарегистрируйтесь для предварительной версии функции с помощью портала Azure или Azure PowerShell. Если у вас есть вопросы, обратитесь к команде Azure Files.
- Войдите на портал Azure.
- Найдите и выберите предварительные версии функций.
- Выберите фильтр "Тип " и выберите Microsoft.Storage.
- Выберите "Премиум", чтобы увеличить максимальное число открытых дескрипторов Azure, а затем нажмите кнопку "Регистрация".
Следующие шаги
- Проверка состояния SMB Multichannel
- См. документацию по Windows для SMB Multichannel