Прочитать на английском

Поделиться через


Понимание и оптимизация производительности файлового хранилища Azure

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

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

Модель управления Модель выставления счетов Уровень медиа Избыточность Малый и средний бизнес Сетевая файловая система
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) Да Нет

Глоссарий

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

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

    IOPS, или операции ввода-вывода в секунду, измеряет количество операций файловой системы в секунду. Термин "IO" взаимозаменяем с терминами "операция" и "транзакция" в документации по Azure Files.

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

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

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

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

  • Задержка

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

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

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

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

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

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

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

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

Общие папки SSD предлагают модель подготовки, которая гарантирует следующий профиль производительности на основе размера общей папки. Дополнительные сведения см. в подготовленной модели версии 1.

Контрольный список производительности

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

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

  • Требования к операциям ввода-вывода в секунду (IOPS) и пропускной способности: Общие папки SSD поддерживают более высокие ограничения для IOPS и пропускной способности по сравнению с общими папками HDD. См. целевые показатели масштабирования общих папок для получения дополнительной информации.

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

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

  • Распределение операций API: большие рабочие нагрузки метаданных, такие как рабочие нагрузки, выполняющие операции чтения с большим количеством файлов, лучше подходят для общих папок SSD. См. статью "Метаданные" или "рабочая нагрузка пространства имен".

Задержка

При рассмотрении задержки важно сначала понять, как задержка определяется в Azure Files. Наиболее распространенные измерения — это задержка, связанная с сквозной задержкой и метриками задержки службы. С помощью этих метрик транзакций можно определить задержку на стороне клиента и (или) сетевые проблемы, определив, сколько времени трафик приложения тратит на транзит в клиент и от клиента.

  • Конечная задержка (SuccessE2ELatency) — это общее время, необходимое для полной обработки транзакции от клиента через сеть до сервиса Azure Files и обратно к клиенту.

  • Задержка службы (SuccessServerLatency) — это время, необходимое для выполнения транзакции туда и обратно только в Azure Files. Это не включает в себя задержку клиента или сети.

    Диаграмма сравнения задержки клиента и службы для Azure Files.

Разница между значениями SuccessE2ELatency и SuccessServerLatency — это задержка, вызванная сетью и /или клиентом.

Обычно путают задержку клиента с задержкой службы (в этом случае производительность Файлов Azure). Например, если задержка служб показывает низкое значение, а сквозная задержка показывает очень высокое значение для запросов, это предполагает, что всё время тратится на транзит до клиента и обратно, а не в службе Azure Files.

Кроме того, как показано на схеме, чем дальше вы находитесь от службы, тем медленнее задержка и тем сложнее достичь ограничений масштабирования производительности с помощью любой облачной службы. Это особенно верно при доступе к файлам сервиса Azure из локальной сети. Хотя такие параметры, как ExpressRoute, идеально подходят для локальной среды, они по-прежнему не соответствуют производительности приложения (вычислений и хранилища), выполняющегося исключительно в том же регионе Azure.

Совет

Использование виртуальной машины в Azure для тестирования производительности между локальной средой и Azure — это эффективный и практический способ базовых показателей сетевых возможностей подключения к Azure. Недостаточно большие или неправильно маршрутизированные подключение ExpressRoute или VPN-шлюзы могут значительно замедлить рабочие нагрузки, работающие с Azure Files.

Длина очереди

Глубина очереди — это количество невыполненных запросов ввода-вывода, которые может обслуживать ресурс хранилища. Так как диски, используемые системами хранения, превратились из спинделей 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 КиБ для записи.

Операция ввода-вывода Создать 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 мс

См. также


Дополнительные ресурсы

Документация

Обучение

Модуль

Повышение производительности Azure NetApp Files для приложений EDA и HPC на основе рекомендаций - Training

Узнайте, как увеличить производительность Azure NetApp Files для приложений EDA и HPC на основе рекомендаций.

Сертификация

Сертификация Microsoft: Azure для рабочих сред SAP (специальность) - Certifications

Демонстрация планирования, миграции и работы решения SAP в Microsoft Azure при использовании ресурсов Azure.