Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как повысить производительность файловых ресурсов Azure SMB класса премиум (на базе SSD), включая использование многоканального режима SMB и кэширование метаданных.
Применяется к
Модель управления | Модель выставления счетов | Уровень медиа | Избыточность | Малый и средний бизнес | Сетевая файловая система (NFS) |
---|---|---|---|---|---|
Microsoft.Storage | Настроенная версия 2 | HDD (стандартный) | Локальное (LRS) |
![]() |
![]() |
Microsoft.Storage | Настроенная версия 2 | HDD (стандартный) | Зона (ZRS) |
![]() |
![]() |
Microsoft.Storage | Настроенная версия 2 | HDD (стандартный) | Джио (GRS) |
![]() |
![]() |
Microsoft.Storage | Настроенная версия 2 | HDD (стандартный) | GeoZone (GZRS) |
![]() |
![]() |
Microsoft.Storage | Настроенная версия v1 | SSD (премиум) | Локальное (LRS) |
![]() |
![]() |
Microsoft.Storage | Настроенная версия v1 | SSD (премиум) | Зона (ZRS) |
![]() |
![]() |
Microsoft.Storage | Оплата по мере использования | HDD (стандартный) | Локальное (LRS) |
![]() |
![]() |
Microsoft.Storage | Оплата по мере использования | HDD (стандартный) | Зона (ZRS) |
![]() |
![]() |
Microsoft.Storage | Оплата по мере использования | HDD (стандартный) | Джио (GRS) |
![]() |
![]() |
Microsoft.Storage | Оплата по мере использования | HDD (стандартный) | GeoZone (GZRS) |
![]() |
![]() |
Оптимизация производительности
Следующие советы помогут оптимизировать производительность.
- Убедитесь, что учетная запись хранения и клиент находятся в одном регионе Azure, чтобы уменьшить задержку в сети.
- Используйте многопоточные приложения и распределите нагрузку по нескольким файлам.
- Преимущества в плане производительности от SMB Multichannel растут по мере увеличения числа файлов, по которым распределена нагрузка.
- Производительность общего ресурса SSD ограничивается выделенным размером общего ресурса, включая операции ввода-вывода в секунду, пропускную способность и ограничения на отдельные файлы. Дополнительные сведения см. в статье о модели подготовки версии 1.
- Максимальная производительность для одного клиента виртуальной машины по-прежнему ограничена лимитами для виртуальной машины. Например, Standard_D32s_v3 может поддерживать максимальную пропускную способность примерно 1,86 ГиБ/с, при этом исходящие данные из виртуальной машины (записи в хранилище) измеряются. Входящий трафик (считывание из хранилища) отсутствует. Производительность общей папки зависит от ограничений сети компьютера, центральных процессоров, доступной пропускной способности внутренней сети, размеров ввода-вывода, параллелизма и других факторов.
- Первоначальный тест обычно является разминкой. Удалите результаты и повторите тест.
- Если производительность ограничена одним клиентом и рабочая нагрузка по-прежнему ниже выделенных лимитов ресурсов, вы можете добиться более высокой производительности, распределяя нагрузку по нескольким клиентам.
Связь между IOPS, пропускной способностью и размерами операций ввода-вывода
Пропускная способность = размер операций ввода-вывода * операций ввода-вывода в секунду
Более крупные размеры блоков ввода-вывода приводят к увеличению пропускной способности и более высокой задержке, что в итоге снижает количество IOPS. Меньшие размеры операций ввода-вывода приводят к увеличению количества операций ввода-вывода в секунду, но приведет к снижению чистой пропускной способности и задержки. Дополнительные сведения см. в статье "Общие сведения о производительности файлов Azure".
SMB Multichannel
SMB Multichannel позволяет клиенту SMB установить несколько сетевых подключений к общей папке SMB. Azure Files поддерживает SMB Multichannel на файловых хранилищах SSD для клиентов Windows. На стороне службы SMB Multichannel теперь включена по умолчанию для всех созданных учетных записей хранения во всех регионах Azure. Нет других затрат на включение SMB Multichannel.
Льготы
Функция SMB Multichannel позволяет клиентам использовать несколько сетевых подключений, обеспечивающих повышенную производительность на фоне снижения стоимости владения. Повышение производительности достигается путем агрегирования пропускной способности по нескольким сетевым адаптерам и использования поддержки масштабирования на стороне приема (RSS) для сетевых адаптеров для распределения нагрузки ввода-вывода по нескольким ЦП.
- Повышенная пропускная способность: несколько подключений позволяют передавать данные по нескольким путям параллельно и тем самым значительно повышает производительность рабочих нагрузок, использующих большие размеры файлов с большими размерами операций ввода-вывода, и требует высокой пропускной способности с одной виртуальной машины или меньшего набора виртуальных машин. К таким рабочим нагрузкам относится мультимедиа и развлечения с созданием контента, а также перекодирование, геномика и анализ финансовых рисков.
- Более высокий объем операций ввода-вывода в секунду: возможность RSS сетевого адаптера позволяет эффективно распределять нагрузку между несколькими ЦП с несколькими подключениями. Это помогает добиться более высокого масштаба IOPS и эффективно использовать CPU виртуальных машин. Это полезно для рабочих нагрузок с небольшими размерами ввода-вывода, такими как приложения базы данных.
- Отказоустойчивость сети. Несколько подключений устраняют риск сбоя, так как клиенты больше не полагаются на отдельное подключение.
- Автоматическая настройка: если для клиентов и учетных записей хранения включена мультиканальная SMB, это позволяет динамически обнаруживать существующие подключения и по мере необходимости создавать дополнительные пути подключения.
- Оптимизация затрат. Рабочие нагрузки могут достичь более высокого масштаба из одной виртуальной машины или небольшого набора виртуальных машин при подключении к общим папкам SSD. Это снижает совокупную стоимость владения за счет сокращения числа виртуальных машин, необходимых для выполнения рабочей нагрузки и управления ею.
Дополнительные сведения о SMB Multichannel см. в документации по Windows.
Эта функция обеспечивает более высокую производительность для многопоточных приложений, но обычно не помогает приложениям с одним потоком. Дополнительные сведения см. в разделе сравнения производительности .
Ограничения
В настоящее время режим SMB Multichannel для общих файловых ресурсов Azure имеет следующие ограничения.
- Доступно только для файловых ресурсов SSD. Недоступно для файловых хранилищ HDD Azure.
- Поддерживается только для клиентов, использующих SMB 3.1.1. К клиентским операционным системам SMB должны быть применены исправления до рекомендуемых уровней.
- Максимальное количество каналов — четыре, дополнительные сведения см. здесь.
Настройка
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 Multichannel наблюдается небольшое снижение производительности на ~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 тесты на масштабируемость с использованием многопоточности и отдельных файлов в большинстве случаев показывали улучшения. Результаты показаны на следующих схемах:
- На одном сетевом адаптере с большим средним размером ввода-вывода (> ~16k) были значительные улучшения как при чтении, так и в записи.
- Для небольших размеров операций ввода-вывода было незначительное влияние на производительность, примерно на 10%, с включенной поддержкой SMB Multichannel. Этого можно избежать за счет распределения нагрузки по нескольким файлам или отключения функции.
- Производительность по-прежнему привязана к ограничениям одного файла.
Кэширование метаданных для общих папок SSD
Кэширование метаданных — это улучшение для общих папок SSD Azure, предназначенное для повышения следующих характеристик.
- Уменьшение задержки метаданных
- Увеличение ограничений масштабирования метаданных
- Увеличение стабильности задержки, доступных операций ввода-вывода в секунду и пропускной способности сети.
Эта функция улучшает следующие API метаданных и может использоваться как из клиентов Windows, так и для Linux:
- Создать
- Открыть
- Закрытие
- Удалить
В настоящее время эта функция доступна только для общих папок SSD. С этой функцией не связаны дополнительные затраты. Вы также можете зарегистрировать, чтобы увеличить ограничения обработки файлов для общих папок SSD (предварительная версия).
Регистрация для функции кэширования метаданных
Чтобы приступить к работе, зарегистрируйтесь для этой функции с помощью портал Azure или Azure PowerShell.
- Войдите на портал Azure.
- Найдите и выберите предварительные версии функций.
- Выберите фильтр "Тип " и выберите Microsoft.Storage.
- Выберите кэш метаданных Azure Premium Files и затем выберите Регистрация.
Внимание
- Хотя перечисленные как предварительные функции, мы соблюдаем соглашения об уровне обслуживания для общедоступных версий (GA SLAs) и скоро эта функция станет значением по умолчанию для всех учетных записей, устраняя необходимость регистрации.
- Разрешите подключение учетных записей через 2–6 часов после завершения регистрации.
Улучшения производительности с кэшированием метаданных
Большинство рабочих нагрузок или шаблонов использования, содержащих метаданные, могут воспользоваться кэшированием метаданных. Чтобы определить, содержит ли рабочая нагрузка метаданные, можно использовать Azure Monitor для разделения транзакций по измерению API.
К типичным рабочим нагрузкам с большим объемом метаданных и шаблонам использования относятся:
- Службы веб-приложений
- Задачи DevOps
- Индексирование и пакетные задания
- Виртуальные рабочие столы с домашними каталогами или другими рабочими нагрузками, которые в основном взаимодействуют с большим количеством небольших файлов, каталогов или дескрипторов
На следующих схемах показаны потенциальные результаты.
Уменьшение задержки метаданных
Кэширование путей к файлам и каталогам для последующих запросов позволяет сократить задержку при частом доступе к файлам и каталогам на 30% или более для нагрузок с интенсивным использованием метаданных.
Увеличение количества операций ввода-вывода в секунду (IOPS)
Кэширование метаданных может увеличить доступные IOPS более чем на 60% для рабочих нагрузок с интенсивным использованием метаданных.
Диаграмма, показывающая доступные IOPS с кэшированием метаданных и без кэширования.
Увеличение пропускной способности сети
Кэширование метаданных может увеличить пропускную способность сети более чем на 60% для рабочих нагрузок с большим объемом метаданных.
Регистрация для увеличения ограничений дескриптора файлов (предварительная версия)
Чтобы увеличить максимальное количество одновременных дескрипторов на файл и каталог для общих папок SSD SMB с 2000 до 10 000, зарегистрируйтесь для предварительной версии функции с помощью портала Azure или Azure PowerShell. Если у вас есть вопросы, отправьте письмо на электронную почту azfilespreview@microsoft.com.
- Войдите на портал Azure.
- Найдите и выберите предварительные версии функций.
- Выберите фильтр "Тип " и выберите Microsoft.Storage.
- Выберите "Премиум", чтобы увеличить максимальное число открытых дескрипторов Azure, а затем нажмите кнопку "Регистрация".
Следующие шаги
- Проверка состояния SMB Multichannel
- См. документацию по Windows для SMB Multichannel