Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Хранилище BLOB-объектов теперь поддерживает протокол сетевой файловой системы (NFS) версии 3.0. В этой статье содержатся рекомендации, помогающие оптимизировать производительность запросов на хранение. Дополнительные сведения о поддержке NFS 3.0 для хранилища BLOB-объектов Azure см. в статье о поддержке протокола NFS 3.0 для хранилища BLOB-объектов Azure.
Добавление клиентов для повышения пропускной способности
Хранилище Blob Azure масштабируется линейно, пока не достигнет максимального объема пропускной способности для входящего и исходящего трафика учетной записи хранения. Таким образом, приложения могут достичь более высокой пропускной способности с помощью большего числа клиентов. Сведения о том, как просмотреть исходящие данные учетной записи хранения и ограничения входящего трафика, см. в разделе "Целевые показатели масштабируемости и производительности" для стандартных учетных записей хранения.
На следующей диаграмме показано, как увеличивается пропускная способность при добавлении дополнительных клиентов. На этой диаграмме клиент является виртуальной машиной и стандартной учетной записью хранения общего назначения версии 2.
На следующей диаграмме показан тот же эффект при применении к учетной записи хранения BLOB-объектов класса Premium.
Использование учетных записей хранения BLOB-объектов класса Premium для небольших масштабируемых приложений
Не все приложения могут масштабироваться путем добавления дополнительных клиентов. Для этих приложений учетная запись хранения блочных BLOB-объектов уровня "Премиум" Azure обеспечивает стабильно низкую задержку и высокую скорость транзакций. Премиум-аккаунт для хранения блоб-данных может достичь максимальной пропускной способности с использованием меньшего количества потоков и клиентов. Например, с одним клиентом учетная запись хранения BLOB-объектов класса Premium может достичь пропускной способности 2,3x по сравнению с той же настройкой, используемой со стандартной учетной записью хранения общего назначения общего назначения версии 2.
Каждый столбец на следующей диаграмме показывает разницу в пропускной способности между учетными записями хранения премиум и стандартного уровня. По мере увеличения числа клиентов это различие уменьшается.
Увеличьте размер предварительного чтения, чтобы повысить пропускную способность при чтении больших файлов.
Параметр ядра read_ahead_kb представляет объем дополнительных данных, которые следует считывать после выполнения заданного запроса на чтение. Этот параметр можно увеличить до 16 МиБ, чтобы повысить пропускную способность чтения больших файлов.
export AZMNT=/your/container/mountpoint
echo 16384 > /sys/class/bdi/0:$(stat -c "%d" $AZMNT)/read_ahead_kb
Избегайте частых перезаписей данных
Выполнение операции перезаписи занимает больше времени, чем новая операция записи. Это связано с тем, что операция перезаписи NFS, особенно частичное изменение файла на месте, представляет собой сочетание нескольких базовых операций больших двоичных объектов: операции чтения, изменения и операции записи. Поэтому приложение, требующее частых встраиваемых изменений, не подходит для учетных записей хранения BLOB с поддержкой NFS.
Развертывание Azure HPC Cache для чувствительных к задержке приложений.
Для некоторых приложений может потребоваться низкая задержка в дополнение к высокой пропускной способности. Вы можете развернуть Azure HPC Cache, чтобы значительно уменьшить задержку. Дополнительные сведения о задержке в хранилище объектов Blob.
Увеличение числа TCP-подключений
Вы можете использовать nconnect
параметр подключения, чтобы получить более высокую производительность чтения и записи из одной виртуальной машины, но только в том случае, если ядро Linux поддерживает Azure nconnect.
nconnect
— это параметр подключения Linux на стороне клиента, который позволяет использовать несколько TCP-подключений между клиентом и конечной точкой службы BLOB-объектов. Вы можете использовать nconnect
параметр в команде подключения, чтобы указать количество tcp-подключений, которые требуется создать (например: mount -t aznfs -o nconnect=16,sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdatain
).
Это важно
Хотя последние дистрибутивы Linux полностью поддерживают nconnect, этот параметр следует использовать только в том случае, если ядро поддерживает Azure nconnect. Использование параметра подключения nconnect
без поддержки nconnect Azure приведет к снижению пропускной способности, вызовет несколько тайм-аутов и приведет к неправильной работе таких команд, как READDIR
и READIRPLUS
.
Поддержка Azure nconnect доступна в большинстве последних ядер Ubuntu, которые можно использовать с виртуальными машинами Azure. Чтобы узнать, доступна ли поддержка nconnect Azure для ядра, выполните следующую команду.
[ -e /sys/module/sunrpc/parameters/enable_azure_nconnect ] && echo "Yes" || echo "No"
Если поддержка Azure nconnect доступна для ядра, то Yes
выводится в консоль.
'No
В противном случае выводится в консоль.
Если поддержка nconnect Azure доступна, включите ее, выполнив следующую команду.
echo Y > /sys/module/sunrpc/parameters/enable_azure_nconnect
Другие рекомендации по передовым практикам
Используйте виртуальные машины с достаточной пропускной способностью сети.
Используйте несколько точек подключения, когда рабочие нагрузки позволяют ей.
Используйте как можно больше потоков.
Используйте большие размеры блоков.
Сделайте запросы на хранение от клиента, расположенного в том же регионе, что и учетная запись хранения. Это может повысить задержку сети.
Дальнейшие действия
Дополнительные сведения о поддержке NFS 3.0 для хранилища BLOB-объектов Azure см. в статье о поддержке протокола NFS 3.0 для хранилища BLOB-объектов Azure.
Чтобы начать, см. раздел "Подключение хранилища BLOB-объектов с помощью протокола NFS 3.0".