Хранилище: рекомендации по оптимизации производительности для SQL Server на виртуальных машинах Azure

Применимо к:SQL Server на виртуальной машине Azure

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

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

Дополнительные сведения см. в других статьях этой серии: Контрольный список, Размер виртуальной машины, Безопасность, Конфигурация HADR, Сбор базовых показателей.

Контрольный список

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

  • Наблюдайте за приложением и определите требования к пропускной способности и задержке хранилища для данных, журналов и файлов SQL Server перед выбором типа диска.
  • При наличии настройте файлы данных и журналов на локальном томе SSD D: при развертывании новой виртуальной машины или после установки SQL Server вручную . Расширение агента SQL IaaS управляет папкой и разрешениями, которые требуются при повторной настройке.
  • Чтобы оптимизировать производительность хранилища, запланируйте максимально возможное количество некешированных операций ввода-вывода в секунду и используйте кеширование данных в качестве функции производительности при чтении данных, избегая при этом установки ограничения на виртуальные машины и диски.
    • Установите кэширование на узле в режим только для чтения для дисков файлов данных.
    • Задайте значение none для кэширования хоста на дисках файлов журнала.
      • Не включите кэширование чтения и записи на дисках, содержащих SQL Server файлы данных или журналов.
      • Всегда остановите службу SQL Server перед изменением параметров кэша диска.
  • При использовании серии Ebdsv5 или Ebsv5 SQL Server виртуальных машин используйте Premium SSD версии 2 для оптимальной ценовой производительности. Вы можете развернуть виртуальную машину SQL Server с SSD уровня "Премиум" версии 2 с помощью портала Azure (в настоящее время в предварительной версии).
  • Если для рабочей нагрузки требуется более 160 000 IOPS, используйте Premium SSD v2 или Azure Ultra Диски.
  • Поместите данные, журналы и tempdb файлы на отдельные диски.
    • Для диска данных используйте диски класса Premium P30 и P40 или меньше , чтобы обеспечить поддержку кэша. При использовании виртуальных машин серии Ebdsv5 используйте диски типа Premium SSD v2, которые обеспечивают лучшее соотношение цены и производительности для рабочих нагрузок, требующих высокой производительности IOPS и пропускной способности ввода-вывода.
    • Для плана использования диска журнала для оценки емкости и тестирования производительности в сравнении с затратами при выборе между дисками SSD уровня "Премиум" версии 2 или SSD уровня "Премиум" P30 — P80
      • Если требуется субмиллисекундная задержка в хранилище, используйте либо Premium SSD v2, либо Azure Ultra Disks для журнала транзакций.
      • Для развертываний виртуальных машин серии M рассмотрите возможность использования ускорителя записи вместо использования дисков Azure Ultra.
    • Поместите tempdb на временный диск (временный диск является эфемерным и по умолчанию используется для D:\) для большинства SQL Server нагрузок, которые не входят в экземпляр отказоустойчивого кластера (FCI), после выбора оптимального размера виртуальной машины.
      • Если ёмкость локального диска недостаточна для tempdb, рассмотрите возможность увеличения размера виртуальной машины. Дополнительные сведения см. в политиках кэширования файлов данных.
    • Для экземпляров отказоустойчивого кластера (FCI) разместите tempdb в общем хранилище.
      • Если рабочая нагрузка FCI сильно зависит от tempdb производительности диска, то для достижения расширенной конфигурации разместите tempdb на локальном эфемерном диске SSD (по умолчанию D:\), который не входит в состав хранилища FCI. Эта конфигурация нуждается в специальном мониторинге и вмешательстве, чтобы локальный временный диск SSD (по умолчанию D:\) оставался доступным постоянно, так как любые сбои этого диска не инициируют действия со стороны FCI.
  • Создайте полосы из нескольких дисков данных Azure с помощью Storage Spaces для увеличения пропускной способности ввода-вывода до пределов операций ввода-вывода и пропускной способности, предусмотренных для целевой виртуальной машины.
  • При переносе нескольких разных рабочих нагрузок в облако Azure Elastic SAN может быть экономичным решением для консолидированного хранилища. Однако при использовании Azure Elastic SAN для достижения требуемых IOPS/пропускной способности для рабочих нагрузок SQL Server часто требуется дополнительный объем емкости. Хотя обычно не подходит для отдельных SQL Server рабочих нагрузок, вы можете достичь экономичного решения при сочетании рабочих нагрузок с низкой производительностью с SQL Server.
  • Для рабочих нагрузок разработки и тестирования, а также для долгосрочного архивирования резервных копий рассмотрите возможность использования стандартного хранилища. Не рекомендуется использовать hdD/SSD уровня "Стандартный" для рабочих нагрузок.
  • Дисковое ускорение на основе кредитов (P1–P20) следует использовать только для небольших нагрузок разработки и тестирования, а также систем структурных подразделений.
  • Отформатируйте диск данных с размером единиц размещения 64 КБ для всех файлов данных на этом диске, за исключением временного диска D:\ (размер которого по умолчанию составляет 4 КБ). Виртуальные машины SQL Server, развернутые через Azure Marketplace, используют диски данных, отформатированные с размером единицы выделения и перемежением для пула хранения, установленными на 64 КБ.
  • Настройте учетную запись хранения в том же регионе, что и виртуальная машина SQL Server.
  • Отключите геоизбыточное хранилище Azure (георепликация) и используйте LRS (локально избыточное хранилище) в хранилище Azure.
  • Включите оценку рекомендаций SQL для выявления возможных проблем с производительностью и оценки того, что виртуальная машина SQL Server настроена для выполнения рекомендаций.
  • Просмотрите и отслеживайте ограничения дисков и виртуальных машин с помощью метрик использования операций ввода-вывода в хранилище.
  • Исключить файлы SQL Server из сканирования антивирусным программным обеспечением, включая файлы данных, журналы и файлы резервных копий.
  • Измените размер пула носителей соответствующим образом.

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

Обзор

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

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

Тип диска зависит от типа файла, на котором размещаются диски, и от требований к пиковой производительности.

Совет

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

Типы дисков виртуальной машины

Вы можете выбрать уровень производительности для дисков. Типы управляемых дисков, доступные в качестве базового хранилища, перечисленные по возрастанию производительности: стандартные жесткие диски (HDD), стандартные твердотельные накопители (SSD), твердотельные накопители "Премиум" (SSD), "Премиум" SSD v2 и "Ультра" диски.

Для стандартных жестких дисков, стандартных SSD-накопителей и премиальных SSD-накопителей производительность диска увеличивается с увеличением его размера. Диски группируются по меткам дисков уровня "Премиум", например P1 с 4 ГиБ пространства и 120 операций ввода-вывода в секунду на P80 с 32 ТиБ хранилища и 20 000 операций ввода-вывода в секунду. Хранилище категории "Премиум" поддерживает кеш хранилища, который помогает повысить производительность операций чтения и записи для некоторых рабочих нагрузок. Дополнительные сведения см. в статье Обзор управляемых дисков.

Производительность SSD уровня "Премиум" версии 2 и "Ультра" можно изменить независимо от размера диска. Дополнительные сведения см. в статье "Производительность диска "Ультра" и производительность SSD уровня "Премиум" версии 2. Если для рабочей нагрузки требуется более 160 000 операций ввода-вывода в секунду, рассмотрите возможность использования дисков SSD уровня "Премиум" версии 2 или "Ультра".

Для виртуальной машины SQL Server в Azure рассмотрим три основных роли диска — диск операционной системы (ОС), временный диск и диски данных. Тщательно выберите то, что вы храните на диске (C:\) операционной системы и временный диск (D:\).

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

Диск операционной системы — это виртуальный жесткий диск, который можно загрузить и подключить в качестве работающей версии операционной системы. Он обозначен как диск C:\. При создании виртуальной машины Azure платформа подключает по крайней мере один диск к виртуальной машине для диска операционной системы. Диск C:\ — это место по умолчанию для установки приложений и конфигурации файлов.

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

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

Многие виртуальные машины Azure содержат другой тип диска, называемый временным диском, который помечен как D:\ диск. В зависимости от серии и размера виртуальной машины емкость этого диска варьируется. Временный диск является временным, что означает, что хранилище дисков создается (освобождено и выделено снова) при перезапуске виртуальной машины или переходе на другой узел. Этот процесс может произойти во время восстановления службы.

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

Поместите tempdb на локальный временный SSD-диск D:\ для рабочих нагрузок SQL Server, если использование локального кэша не вызывает беспокойств. Если вы используете виртуальную машину, которая не имеет временного диска, поместите tempdb его на свой изолированный диск или пул носителей с кэшированием только для чтения. Дополнительные сведения см. в разделе Политики кеширования данных tempdb.

Диски данных

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

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

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

Отформатируйте диск данных с размером единиц размещения 64 КБ для всех файлов данных на этом диске, за исключением временного диска D:\ (размер которого по умолчанию составляет 4 КБ). Виртуальные машины SQL Server, развернутые через Azure Marketplace, используют диски данных, отформатированные с размером единицы выделения и перемежением для пула хранения, установленными на 64 КБ.

Примечание.

Вы также можете разместить файлы базы данных SQL Server непосредственно в хранилище BLOB-объектов Azure или в хранилище SMB , например в общей папке Azure premium. Для повышения производительности, надежности и доступности компонентов используйте управляемые диски Azure.

Премиум SSD версии 2

Используйте диски SSD уровня "Премиум" версии 2 при выполнении рабочих нагрузок SQL Server в поддерживаемых регионах, если текущие ограничения подходят для вашей среды. В зависимости от вашей конфигурации, Премиум SSD v2 может быть дешевле, чем Премиум SSD, при этом обеспечивая улучшение производительности. С помощью SSD уровня "Премиум" версии 2 можно настроить пропускную способность или операции ввода-вывода в секунду независимо от размера диска. Индивидуальное изменение параметров производительности обеспечивает большую экономию затрат и позволяет выполнять сценарии изменений в соответствии с требованиями к производительности в течение ожидаемых или известных периодов необходимости.

Используйте SSD класса Premium версии 2 при использовании серии виртуальных машин Ebdsv5 или Ebsv5 , так как это более экономичное решение для этих высокопроизводительных компьютеров пропускной способности ввода-вывода. Если для рабочей нагрузки требуется более 160 000 операций ввода-вывода в секунду, рассмотрите возможность использования дисков SSD уровня "Премиум" версии 2 или "Ультра".

Вы можете развернуть виртуальные машины SQL Server с Premium SSD v2 с помощью портала Azure (сейчас в режиме предварительного просмотра).

Если вы развертываете виртуальную машину SQL Server с помощью портала Azure и хотите использовать SSD версии 2 уровня "Премиум", вы в настоящее время ограничены виртуальными машинами серии Ebdsv5 или Ebsv5. Однако если вы вручную создадите виртуальную машину с хранилищем SSD уровня "Премиум" версии 2, а затем вручную установите SQL Server на виртуальной машине, можно использовать любую серию виртуальных машин, поддерживающую SSD уровня "Премиум" версии 2. Обязательно зарегистрируйте виртуальную машину SQL Server с расширением агента SQL IaaS, чтобы воспользоваться всеми преимуществами, предоставленными расширением.

Azure Elastic SAN

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

Elastic SAN поддерживает миллионы операций ввода-вывода в секунду, двузначные ГБ/с пропускной способности и низкую однозначную задержку в миллисекундах. Используйте Azure Elastic SAN, если необходимо объединить хранилище, работать с несколькими вычислительными службами или иметь рабочие нагрузки, требующие высокого уровня пропускной способности при управлении хранилищем по пропускной способности сети. Однако, поскольку для достижения требуемых IOPS и пропускной способности для рабочих нагрузок SQL Server часто требуется избыточное provisionирование емкости, обычно это не подходит для отдельных рабочих нагрузок SQL Server. Чтобы получить оптимальное значение из эластичной сети SAN, рассмотрите возможность использования в качестве хранилища для нескольких рабочих нагрузок SQL Server или сочетания SQL Server и других рабочих нагрузок с низкой производительностью.

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

SSD ценовой категории «Премиум»

** Используйте SSD класса Premium для данных и журналов в рабочих нагрузках SQL Server. Операции ввода-вывода в секунду (IOPS) и пропускная способность для дисков SSD класса Premium зависят от размера и типа диска.

Для рабочих нагрузок используйте диски P30 или P40 для файлов данных SQL Server для оптимального баланса производительности и зарезервированных цен. Используйте диски уровня производительности P30 или более высокого уровня производительности для файлов журнала транзакций SQL Server. Чтобы получить лучшую общую стоимость владения, начните с P30s (5000 операций ввода-вывода в секунду/200 МБИТ/с) для файлов данных и журналов и выберите только более высокие емкости, если необходимо контролировать количество дисков виртуальной машины. Для разработки и тестирования или небольших систем можно использовать размеры меньше P30, так как эти диски поддерживают кэширование, но они не предлагают зарезервированные цены.

Для рабочих нагрузок OLTP сопоставьте целевое количество операций ввода-вывода в секунду на диск (или пул носителей) с требованиями к производительности, используя рабочие нагрузки во время пиковой нагрузки и счетчики производительности Disk Reads/sec + Disk Writes/sec. Для рабочих нагрузок хранилища данных и отчетов сопоставьте целевую пропускную способность, используя нагрузки в пиковое время и Disk Read Bytes/sec + Disk Write Bytes/sec.

Используйте дисковые пространства для достижения оптимальной производительности. Настройте два пула, один для файлов журнала и другой для файлов данных. Если вы не используете дисковое чередование, используйте два SSD класса Premium, подключенные к отдельным дискам, где один диск содержит файл журнала, а другой — диск с данными.

Подготовленные IOPS и пропускная способность на диск определяют общие возможности пула хранилища. Объединенные возможности IOPS и пропускной способности дисков достигают максимальных значений в пределах ограничений пропускной способности виртуальной машины.

Примечание.

Число столбцов полосы (NumberOfColumns) фиксируется при создании пула, поэтому добавление дисков позже увеличивает только емкость, но не IOPS или пропускную способность. Чтобы повысить производительность, создайте пул с требуемым количеством дисков.

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

Масштабирование премиум-дисков

Размер SSD уровня "Премиум" определяет начальный уровень производительности диска. Назначайте уровень производительности при развертывании или измените его позже, не меняя размер диска. Если спрос увеличивается, увеличьте уровень производительности в соответствии с вашими бизнес-потребностями.

Изменив уровень производительности, вы можете подготовиться к более высокому требованию, не опираясь на ускорение диска.

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

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

Дополнительные сведения см. в разделе Уровни производительности для управляемых дисков.

диск Azure категории "Ультра"

Если вам необходимы постоянно низкие задержки с субмиллисекундным временем отклика, можно использовать диск Azure Ultra для диска журнала SQL Server или даже для диска с данными в приложениях, которые очень чувствительны к задержкам ввода-вывода.

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

Диск Ultra не поддерживается во всех сериях виртуальных машин и имеет другие ограничения, такие как доступность по регионам, резервирование и поддержка Azure Backup. Чтобы узнать больше, см. Использование Azure Ultra Disks для полного списка ограничений.

Жесткие диски и твердотельные накопители категории "Стандартный"

Стандартные HDD и SSD имеют различные задержки и пропускную способность. Используйте их только для рабочих нагрузок разработки и тестирования. Используйте Premium SSD v2 или Premium SSD для рабочих производственных нагрузок. Если вы используете SSD уровня "Стандартный" (сценарии разработки и тестирования), добавьте максимальное количество дисков данных, поддерживаемых размером виртуальной машины , и используйте чередование дисков с помощью дисковых пространств для оптимальной производительности.

Кэш

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

Пропускная способность в IOPS и МБ/с без кэширования засчитываются в лимиты пропускной способности диска виртуальной машины без кэша. Максимальные кэшированные ограничения предоставляют еще один буфер для чтений, который помогает справляться с ростом и непредвиденными пиками.

Включите кэширование Read-only класса Premium на дисках данных, чтобы значительно повысить производительность чтения без дополнительных затрат. Не включите кэширование на дисках журнала транзакций. Рекомендуемые параметры для каждого типа диска см. в политиках кэширования файлов данных.

Операции чтения и записи в Azure BlobCache (кэшированные операции ввода-вывода в секунду и пропускная способность) не учитываются в некичированных ограничениях операций ввода-вывода в секунду и пропускной способности виртуальной машины.

Примечание.

Кэширование дисков не поддерживается для дисков 4 ТиБ и больше (P50 и больше). При подключении нескольких дисков к виртуальной машине каждый диск меньше 4 ТиБ поддерживает кэширование. Дополнительные сведения см. в разделе Кеширование диска.

Некешированная пропускная способность

Максимальные некэшированные операции ввода-вывода на диск (IOPS) и пропускная способность — это максимальные ограничения удаленного хранилища, которые может обрабатывать виртуальная машина. Это ограничение определяется на виртуальной машине и не является ограничением базового хранилища дисков. Это ограничение применяется к операциям ввода-вывода для дисков данных, удаленно подключенных к виртуальной машине, но не к локальным операциям ввода-вывода для временного диска (D:\) или диска ОС.

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

Проверьте IOPS (операций ввода-вывода в секунду) и пропускную способность без кеша, доступные для виртуальной машины, в документации для вашей серии виртуальных машин.

Например, в документации по серии M показано, что максимальная пропускная способность без кэширования для виртуальной машины Standard_M8ms составляет 5 000 операций ввода-вывода в секунду и 125 Мбит/с пропускной способности некичированного диска.

Снимок экрана: документация по пропускной способности некэшированных дисков серии M.

Аналогичным образом можно увидеть, что Standard_M32ts поддерживает 20 000 операций ввода-вывода на диск без кэширования и пропускную способность диска 500 МБ/с без кэширования. Это ограничение регулируется на уровне виртуальной машины независимо от базового хранилища дисков класса Premium.

Дополнительные сведения см. в разделе Ограничения кешированных и некешированных дисков.

Пропускная способность кешированного и временного хранилища

Максимальное ограничение пропускной способности кэшированного и временного хранилища отличается от предельной пропускной способности без кэширования на виртуальной машине. Azure BlobCache использует сочетание памяти случайного доступа узла виртуальной машины и локально подключенного SSD. Временный диск (D:\ диск) на виртуальной машине также использует этот локальный SSD.

Максимальное значение пропускной способности кэшированного и временного хранилища управляет процессом ввода-вывода с локальным временным диском (D:\ диском) и Azure BlobCache только в том случае, если включено кэширование на уровне хоста. Некоторые серии виртуальных машин публикуют их как отдельные метрики, а именно temp ReadWrite Storage IOPS и Temp ReadWrite Storage Speed (MBps). Ознакомьтесь с документацией по серии виртуальных машин с соответствующими именами метрик.

При включении кэширования в хранилище уровня "Премиум" виртуальные машины могут масштабироваться за пределы ограничений операций ввода-вывода (IOPS) некэшированных виртуальных машин и пропускной способности дистанционного хранилища.

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

Скриншот, на котором показана поддержка M-Series Premium Storage.

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

Снимок экрана: документация по пропускной способности кэшированного диска серии M.

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

Политики кеширования файлов данных

Политика кэширования хранилища зависит от типа файлов данных SQL Server, размещенных на диске.

В следующей таблице приведена сводка рекомендуемых политик кэширования на основе типа данных SQL Server:

диск SQL Server Рекомендация
Диск данных Задайте значение Read-only. Не используйте Read/Write кэширование, которое угрожает целостностью данных из-за буферизации записей.
Read-only Кэширование повышает производительность чтения, не влияя на устойчивость записи.
Удаленные IOPS и пропускная способность, а также кэшированные IOPS и пропускная способность вносят вклад в общую доступную производительность виртуальной машины, но фактическая производительность зависит от способности рабочей нагрузки использовать кэш (коэффициент попаданий кэша).
Диск журнала транзакций Задайте значение None. Не включайте кэширование на дисках журнала для Read-only или Read/Write. Любой параметр рискует нарушить гарантии устойчивости ACID, так как кэш узла может подтвердить записи журналов, прежде чем они достигают стабильного носителя. Кэширование также снижает производительность записи и снижает доступность кэша для операций чтения диска данных.
диска ОС Read/write — политика кеширования по умолчанию для диска ОС.
Не изменяйте уровень кэширования диска ОС.
tempdb Если вы не можете разместить tempdb на эфемерном диске D:\ из-за причин емкости, измените размер виртуальной машины, чтобы получить более большой временный диск или поместить tempdb на отдельный диск данных с Read-only настроенным кэшированием.
Кэш виртуальных машин и временный диск используют локальный SSD, поэтому при оценке размера учитывайте, что tempdb операции ввода-вывода засчитываются в кэшированные операции и ограничения пропускной способности виртуальных машин, когда они размещены на эфемерном диске.

Внимание

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

Дополнительные сведения см. в разделе Кеширование диска.

Требования к кэшированию для дисков SQL Server

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

  • Диски журнала транзакций: задайте для кэша узла Azure значение None. Включение кэширования Read-only или Read/Write на дисках журналов может поставить под угрозу гарантии долговечности, необходимые для соответствия требованиям ACID, так как кэш узла может подтвердить запись журналов до достижения стабильного носителя. Кэширование также снижает производительность записи и уменьшает объем кэша, доступный для операций чтения на дисках данных.
  • Диски данных: задайте для кэша узла Azure значение Read-only. Не используйте Read/Write кэширование, которое подвергает риску целостность данных из-за буферизации записей. Read-only Кэширование повышает производительность чтения, не влияя на устойчивость записи.
  • Диск ОС: Оставьте политику кэширования по умолчанию Read/Write. Не изменяйте этот параметр.

Внимание

Задайте для кэша узла Azure для дисков журналов транзакций значение None, а для дисков данных — значение Read-only. Не используйте кэширование на любом диске, где размещаются Read/Write файлы данных ИЛИ журналов SQL Server.

Общие рекомендации по кэшированию, безопасности контроллера и надежности дисков SQL Server см. в основных принципах ввода-вывода SQL Server.

Перед развертыванием:

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

Полосность дисков

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

Добавьте дополнительные диски данных и используйте чередование дисков для большей пропускной способности. Например, приложение с пропускной способностью 12 000 операций ввода-вывода в секунду и 180 МБ/с может использовать три полосатых диска P30 для доставки пропускной способности 15 000 операций ввода-вывода в секунду и 600 МБ/с.

Сведения о настройке стриппинга дисков см. в стриппинг дисков.

Установка ограничения на использование диска

Диск и виртуальная машина имеют ограничения пропускной способности. Максимальные лимиты IOPS для виртуальной машины и для диска отличаются и действуют независимо.

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

Например, если приложению требуется пропускная способность 12 000 операций ввода-вывода в секунду и 180 Мбит/с, можно:

  • Используйте Standard_M32ms, которая имеет максимальную пропускную способность диска без кэширования 20 000 операций ввода-вывода в секунду и 500 МБИТ/с.
  • Объедините три диска P30 в RAID 0 для обеспечения 15 000 операций ввода-вывода в секунду и пропускной способности 600 МБ/с.
  • Используйте виртуальную машину Standard_M16ms и кэширование хоста для задействования локального кэша вместо использования пропускной способности.

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

Дополнительные сведения об ограничениях дискового ввода-вывода и использовании кэширования для предотвращения данных ограничений см. в разделе "Ограничение ввода-вывода диска".

Примечание.

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

Ускоритель записи

Ускоритель записи — это функция диска, доступная только для виртуальных машин серии M . Назначение Write Accelerator — уменьшить задержку операций ввода-вывода для Azure Premium Storage, когда требуется задержка в единицы миллисекунд из-за больших объемов, критически важных рабочих нагрузок OLTP или в средах хранилища данных.

Используйте ускоритель записи для улучшения задержки записи на диск, в котором размещаются файлы журнала. Не используйте ускоритель записи для файлов данных SQL Server.

Диски ускорителя записи используют тот же предел операций ввода-вывода в секунду, что и виртуальная машина. Присоединенные диски не могут превышать лимит IOPS ускорителя записи для виртуальной машины.

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

SKU виртуальной машины Диски ускорителя записи Число операций ввода-вывода в секунду на диск ускорителя записи для каждой виртуальной машины (VM)
M416ms_v2, M416s_8_v2, M416s_v2 16 20000
M208ms_v2, M208s_v2 8 10 000
M192ids_v2, M192idms_v2, M192is_v2, M192ims_v2 16 20000
M128ms, M128s, M128ds_v2, M128dms_v2, M128s_v2, M128ms_v2 16 20000
M64ms, M64ls, M64s, M64ds_v2, M64dms_v2, M64s_v2, M64ms_v2 8 10 000
M32ms, M32ls, M32ts, M32s, M32dms_v2, M32ms_v2 4 5 000
M16ms, M16s 2 2500
M8ms, M8s 1 1250
Standard_M176s_3_v3, Standard_M176ds_3_v3, Standard_M176s_4_v3, Standard_M176ds_4_v3 16 20000
Standard_M96s_1_v3, Standard_M96ds_1_v3, Standard_M96s_2_v3, Standard_M96ds_2_v3 8 10 000
Стандартная серия M48s_1_v3, Стандартная серия M48ds_1_v3 4 5 000
Standard_M24s_v3, Standard_M24ds_v3 2 5 000
Standard_M12s_v3, Standard_M12ds_v3 1 5 000

Существует несколько ограничений на использование ускорителя записи. Дополнительные сведения см. в разделе Ограничения при использовании Ускорителя записи.

Сравнение с Azure диском категории "Ультра"

Самая большая разница между ускорителем записи и дисками Azure Ultra заключается в том, что ускоритель записи — это функция виртуальной машины, доступная только для серии M, а диски Azure Ultra — это вариант хранения. Ускоритель записи — это оптимизированный для записи кэш с собственными ограничениями на основе размера виртуальной машины. Azure диски ценовой категории "Ультра" — это вариант хранилища дисков с низкой задержкой для виртуальных машин Azure.

Если возможно, используйте Write Accelerator вместо Ultra Disks для диска журнала транзакций. Для виртуальных машин, которые не поддерживают ускоритель записи, но требуют низкой задержки в журнале транзакций, используйте диски Azure Ultra.

Правильное изменение размера пулов хранилища

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

Примечание.

Число столбцов полосы (NumberOfColumns) устанавливается при создании пула. Добавление дисков в существующий пул увеличивает емкость, но не улучшает число операций ввода-вывода в секунду или пропускную способность. Чтобы повысить производительность, создайте пул с требуемым количеством дисков.

Для SQL Server на виртуальных машинах Azure с дисками SSD класса Premium (версии 1), развернутыми из Azure Marketplace, развертывание автоматически добавляет диски в пул носителей. Используйте область хранилища ресурса виртуальных машин SQL на портале Azure для изменения размера дисков в пуле носителей.

Для образов SQL Server на виртуальных машинах Azure Marketplace, использующих диски SSD уровня Premium версии 2 или диски ценовой категории "Ультра" или для виртуальных машин с самоустановленными экземплярами SQL Server, вручную измените количество дисков в пуле носителей, чтобы изменить размер тома.

Чтобы расширить пул хранилища, выполните следующие действия.

  1. Добавьте новый диск:
    1. Подключите управляемый диск в портале Azure
    2. Подключение управляемого диска с помощью PowerShell
    3. Подключение неуправляемого диска с помощью PowerShell
  2. Подключитесь к виртуальной машине.
  3. Добавьте диски в пул хранения из Server Manager> File and Storage Services > Volumes > Storage Pools. Используйте задачи , чтобы выбрать параметр "Добавить физический диск ".
  4. После добавления диска щелкните правой кнопкой мыши целевой виртуальный диск и выберите "Расширить виртуальный диск".
  5. Откройте "Управление дисками", щелкните правой кнопкой мыши целевой том и выберите "Расширить том".

Мониторинг производительности хранилища

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

Единица измерения Описание Как измерять Примеры рабочих нагрузок
IOPS (операции ввода-вывода в секунду) Количество запросов, выполняемых приложением в хранилище в секунду Счетчики монитора производительности: Disk Reads/sec и Disk Writes/sec Приложения OLTP (обработка транзакций в Интернете), такие как системы обработки платежей, онлайн-покупки и системы розничной точки продажи
Пропускная способность Объем данных, отправляемых в базовое хранилище, часто измеряется в мегабайтах в секунду Счетчики монитора производительности: Disk Read Bytes/sec и Disk Write Bytes/sec Приложения для хранения данных, такие как хранилища данных для анализа, отчетов, рабочих нагрузок ETL и других целевых объектов бизнес-аналитики

Размеры единиц ввода-вывода влияют на возможности операций ввода-вывода и пропускной способности. Меньшие размеры операций ввода-вывода дают более высокую пропускную способность, а размеры операций ввода-вывода большего размера обеспечивают более высокую пропускную способность. SQL Server автоматически выбирает оптимальный размер ввода-вывода. Дополнительные сведения см. в разделе "Оптимизация операций ввода-вывода в секунду", "Пропускная способность" и "Задержка" для приложений.

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

Примечание.

Azure Monitor в настоящее время не предоставляет метрики уровня диска для эфемерного временного диска (D:\). Процент использования кэшированных операций ввода-вывода в секунду виртуальной машины и процент использования кэшируемой пропускной способности виртуальных машин отражает количество операций ввода-вывода в секунду и пропускную способность от временных дисков (D:\) и кэширования узла вместе.

Мониторинг роста журнала транзакций

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

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

Если необходимо расширить диск, вы можете сделать это на панели Storage ресурса виртуальных машин SQL если вы развернули образ SQL Server из Azure Marketplace, или на панели Disks для виртуальной машины Azure и самоустановленной SQL Server.