Рекомендации по оптимизации производительности SQL Server в Azure Stack Hub

Эта статья содержит рекомендации по работе с SQL Server для повышения производительности и оптимизации использования SQL Server на виртуальных машинах Azure Stack Hub. При выполнении SQL Server на виртуальных машинах Azure Stack Hub используйте те же средства настройки производительности базы данных, которые применяются для SQL Server в локальной серверной среде. Производительность реляционной базы данных в облаке Azure Stack Hub зависит от многих факторов, таких как размеры виртуальных машин и конфигурация дисков данных.

При создании образов SQL Server выполняйте подготовку виртуальных машин на портале Azure Stack Hub. Скачайте расширение IaaS SQL в интерфейсе управления Marketplace на портале администратора Azure Stack Hub, а также скачайте любые образы виртуальной машины SQL Server. К ним относятся SQL Server 2016 с пакетом обновления 1, SQL Server 2016 с пакетом обновления 2 и SQL Server 2017.

Примечание

Хотя в этой статье описывается подготовка виртуальной машины SQL Server с помощью глобального портал Azure, руководство также относится к Azure Stack Hub со следующими отличиями: SSD недоступен для диска операционной системы и есть незначительные различия в конфигурации хранилища.

В образах виртуальных машин для SQL Server можно использовать только собственную лицензию (BYOL). Для Windows Server по умолчанию используется модель лицензирования с оплатой по мере использования (PAYG). Подробные сведения о модели лицензирования Windows Server на виртуальной машине см. в статье Windows Server в Azure Stack Hub Marketplace: вопросы и ответы.

Из этой статьи вы узнаете, как обеспечить максимальную производительность SQL Server на виртуальных машинах Azure Stack Hub. Если рабочая нагрузка не так велика, могут потребоваться не все рекомендуемые варианты оптимизации. При оценке этих рекомендаций учитывайте актуальные потребности в производительности и характер рабочих нагрузок.

Контрольный список для рекомендации по работе с SQL Server

Ниже приведен контрольный список по обеспечению оптимальной производительности SQL Server на виртуальных машинах Azure Stack Hub.

Область Оптимизация
Размер виртуальной машины DS3 или выше для выпуска SQL Server Enterprise.

DS2 или выше для выпусков SQL Server Standard и Web.
Память Используйте семейство виртуальных машин с поддержкой хранилища класса Premium.
Диски Используйте по крайней мере два диска с данными (один для файлов журнала и один для файла данных и TempDB) и выберите размер диска в соответствии с потребностями в емкости. Задайте стандартные расположения файлов данных для этих дисков во время установки SQL Server.

Избегайте использования дисков операционной системы или временных дисков для хранения базы данных или журналов.
Обеспечьте чередование нескольких дисков данных Azure для увеличения пропускной способности ввода-вывода, используя дисковые пространства.

Выполняйте форматирование с использованием задокументированных размеров кластеров.
Ввод-вывод Включите быструю инициализацию для файлов данных.

Ограничьте автоматическое увеличение в базах данных с фиксированным небольшим шагом приращения (64–256 МБ).

Отключите автосжатие базы данных.

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

Включите заблокированные страницы.

Применяйте накопительные обновления и пакеты обновления SQL Server.
Характерные особенности Выполняйте резервное копирование непосредственно в хранилище BLOB-объектов (если поддерживается используемой версией SQL Server).

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

Рекомендации по выбору размеров виртуальных машин

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

  • Выпуск SQL Server Enterprise: DS3 или выше.

  • Выпуски SQL Server Standard и Web: DS2 или выше.

В Azure Stack Hub отсутствуют различия в производительности между сериями семейств виртуальных машин DS и DS_v2.

Рекомендации по выбору хранилища

Виртуальные машины серии DS (наряду с серией DSv2) в Azure Stack Hub предоставляют максимальную пропускную способность (операции ввода-вывода в секунду) диска с данными и диска операционной системы. Виртуальная машина серии DS или DSv2 обеспечивает до 1000 операций ввода-вывода в секунду для диска операционной системы и до 2300 операций ввода-вывода в секунду для диска данных независимо от типа или размера выбранного диска.

Пропускная способность диска с данными определяется с учетом серии семейства виртуальных машин. См. дополнительные сведения об определении пропускной способности диска с данными каждой серии семейства виртуальных машин.

Примечание

В рабочей среде рекомендуем использовать виртуальную машину серии DSv2 или DS. Так вы обеспечите максимальное количество операций ввода-вывода в секунду на диске операционной системы и дисках данных.

Так как георепликация в Azure Stack Hub недоступна, этот параметр при создании учетной записи хранения не имеет никакого значения.

Рекомендации по использованию дисков

Виртуальная машина Azure Stack Hub поддерживает три основных типа дисков.

  • Диск операционной системы: При создании виртуальной машины Azure Stack Hub платформа подключает по крайней мере один диск (помеченный как диск C ) к виртуальной машине для диска операционной системы. Этот диск представляет собой VHD-файл, сохраненный как страничный BLOB-объект в хранилище.

  • Временный диск: Виртуальные машины Azure Stack Hub содержат другой диск, который называется временным диском (помечен как диск D ). Это диск на узле, который может использоваться для области временных файлов.

  • Диски данных: Вы можете подключить дополнительные диски к виртуальной машине в качестве дисков данных, и эти диски хранятся в хранилище в виде страничных BLOB-объектов.

В следующих разделах приводятся рекомендации по использованию этих дисков.

Диск операционной системы

Диск операционной системы — это виртуальный жесткий диск, который можно установить и использовать как диск с установленной операционной системой, данный диск имеет метку C: .

Временный диск

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

TempDB рекомендуется хранить на диске с данными, так как каждый диск с данными обеспечивает более 2300 операций ввода-вывода в секунду.

Диски данных

  • Используйте диски данных для файлов данных и журналов. Если вы не применяете чередование дисков, используйте два диска с данными на виртуальной машине с поддержкой хранилища класса Premium, где один диск содержит файлы журнала, а другой — файлы данных и TempDB. Каждый диск с данными обеспечивает определенное количество операций ввода-вывода в секунду в зависимости от семейства виртуальных машин. См. дополнительные сведения о поддерживаемых размерах виртуальных машин в Azure Stack Hub. При использовании чередования дисков, например в службе дисковых пространств, рекомендуется размещать файлы журналов и данных на одном диске (включая TempDB). Эта конфигурация предоставляет максимальное количество операций ввода-вывода в секунду, доступных для использования в SQL Server, независимо от файла, для которого это необходимо в определенный момент.

Примечание

При подготовке виртуальной машины SQL Server на портале у вас есть возможность изменить конфигурацию хранилища. В зависимости от конфигурации в Azure Stack Hub настраивается один или несколько дисков. Несколько дисков объединяются в единый пул хранилищ. Файлы данных и журналов совместно размещаются в этой конфигурации.

  • Чередование дисков: Чтобы повысить пропускную способность, можно добавить дополнительные диски данных и использовать чередование дисков. Чтобы определить количество дисков с данными, необходимо проанализировать количество операций ввода-вывода в секунду для файлов журналов, файлов данных и файлов TempDB. Обратите внимание, что ограничения на операции ввода-вывода в секунду устанавливаются для каждого диска данных с учетом серии виртуальных машин, а не их размера. При этом ограничения пропускной способности сети устанавливаются с учетом размера виртуальной машины. См. дополнительные сведения о поддерживаемых размерах виртуальных машин в Azure Stack Hub. Придерживайтесь приведенных ниже рекомендаций.

    • Для Windows Server 2012 или более поздней версии используйте дисковые пространства, придерживаясь приведенных ниже рекомендаций.

      1. Задайте чередование (размер блока чередования) в 64 КБ (65 536 байт) для рабочих нагрузок OLTP и 256 КБ (262 144 байт) для рабочих нагрузок хранилища данных, чтобы избежать снижения производительности из-за рассогласования разделов. Это следует сделать в PowerShell.

      2. Задайте число столбцов равным количеству физических дисков. Используйте PowerShell (не пользовательский интерфейс диспетчера сервера) при настройке более восьми дисков.

        Например, следующая команда PowerShell создает пул хранилища с установленным размером чередования 64 КБ и числом столбцов, равным 2:

        $PoolCount = Get-PhysicalDisk -CanPool $True
        $PhysicalDisks = Get-PhysicalDisk | Where-Object {$_.FriendlyName -like "*2" -or $_.FriendlyName -like "*3"}
        
        New-StoragePool -FriendlyName "DataFiles" -StorageSubsystemFriendlyName "Storage Spaces*" -PhysicalDisks $PhysicalDisks | New-VirtualDisk -FriendlyName "DataFiles" -Interleave 65536 -NumberOfColumns 2 -ResiliencySettingName simple -UseMaximumSize |Initialize-Disk -PartitionStyle GPT -PassThru |New-Partition -AssignDriveLetter -UseMaximumSize |Format-Volume -FileSystem NTFS -NewFileSystemLabel "DataDisks" -AllocationUnitSize 65536 -Confirm:$false
        
  • Определите число дисков, связанных с пулом хранилищ, на основании ожидаемой нагрузки. Помните, что в разных размерах виртуальной машины можно подключать различное число дисков данных. См. дополнительные сведения о поддерживаемых размерах виртуальных машин в Azure Stack Hub.

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

  • Размер единицы распределения NTFS: При форматировании диска данных рекомендуется использовать размер единицы выделения 64 КБ для файлов данных и журналов, а также TempDB.

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

Предупреждение

Если не останавливать службы SQL на время таких операций, это может привести к повреждению базы данных.

Рекомендации по использованию операций ввода-вывода

  • Рекомендуется включить быструю инициализацию файлов для сокращения времени, необходимого для начального выделения файлов. Чтобы воспользоваться преимуществами мгновенной инициализации файлов, предоставьте учетной записи службы SQL Server (MSSQLSERVER) SE_MANAGE_VOLUME_NAME и добавьте ее в политику безопасности Выполнение задач обслуживания томов. Если вы используете образ платформы SQL Server для Azure, учетная запись службы по умолчанию (NT Service\MSSQLSERVER) не добавляется в политику безопасности Выполнение задач по обслуживанию томов. Другими словами, быстрая инициализация файлов у образа платформы SQL Server Azure не включена. После добавления учетной записи службы SQL Server в политику безопасности Выполнение задач по обслуживанию томов перезапустите службу SQL Server. Использование этой функции может быть показано из соображений безопасности. Дополнительные сведения см. в разделе Инициализация файлов базы данных.

  • Автоматическое расширение используется в случае непредвиденного роста. Не используйте авторасширение для повседневного управления ростом данных и журналов. Если используется автоматическое увеличение, предварительно разверните файл с помощью параметра Размер .

  • Убедитесь, что автосжатие отключено, чтобы избежать ненужных затрат ресурсов, что может отрицательно повлиять на производительность.

  • Настройка расположений по умолчанию для файлов резервных копий и базы данных. Следуйте рекомендациям в этой статье и внесите изменения в окне свойств сервера. Инструкции см. в статье Просмотр или изменение расположения по умолчанию для файлов данных и журнала (среда SQL Server Management Studio). На следующем снимке экрана показано, где нужно внести необходимые изменения:

    Просмотр или изменение расположений по умолчанию

  • Включение блокировки страниц для сокращения числа операций ввода-вывода, а также операций разбиения по страницам. Дополнительные сведения см. в статье Включение параметра «Блокировка страниц в памяти» (Windows).

  • Рекомендуется сжимать файлы данных при их передаче в среду Azure Stack Hub или из нее, включая файлы резервного копирования.

Обзор конкретных функций

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

  • Резервное копирование вхранилище Azure. При создании резервных копий для SQL Server, работающих на виртуальных машинах Azure Stack Hub, можно использовать SQL Server Резервное копирование по URL-адресу. Эта функция доступна, начиная с накопительного пакета обновления 2 для пакета обновления 1 SQL Server 2012, и рекомендуется к применению при архивации на подключенные диски данных.

    При выполнении резервного копирования или восстановления с использованием службы хранилища Azure следуйте рекомендациям из статей Резервное копирование SQL Server на URL-адрес — рекомендации и устранение неполадок и Восстановление из резервных копий в Microsoft Azure. Кроме того, можно автоматизировать эти процессы резервного копирования с помощью автоматического резервного копирования SQL Server на виртуальных машинах Azure.

  • Резервное копирование в хранилище Azure Stack Hub. Вы можете выполнять резервное копирование в хранилище Azure Stack Hub таким же образом, как и в службу хранилища Azure. При создании резервной копии в SQL Server Management Studio (SSMS) необходимо вручную ввести сведения о конфигурации. SSMS нельзя использовать для создания контейнера хранилища или подписанного URL-адреса. SSMS позволяет подключаться только к подпискам Azure, но не Azure Stack Hub. Вместо этого вам нужно создать учетную запись хранения, контейнер и подписанный URL-адрес с помощью портала Azure Stack Hub или PowerShell.

    Резервное копирование SQL Server

    Примечание

    Подписанный URL-адрес — это маркер SAS на портале Azure Stack Hub без начального символа "?" в строке. Если вы используете функцию копирования на портале, необходимо удалить начальное значение "?", чтобы маркер работал в SQL Server.

    Когда укажете и настроите назначение резервного копирования в SQL Server, можете приступить к резервному копированию в хранилище BLOB-объектов Azure Stack Hub.

Дальнейшие действия

Важные аспекты использования служб и создания приложений в Azure Stack Hub