Служба хранилища: рекомендации по оптимизации производительности SQL Server на виртуальных машинах Azure
Область применения:SQL Server на виртуальной машине Azure
В этой статье приведены наилучшие практики и рекомендации по оптимизации производительности SQL Server на виртуальных машинах Azure.
Обычно существует компромисс между оптимизацией затрат и оптимизацией производительности. Эта серия рекомендаций по производительности ориентирована на получение оптимальной производительности для SQL Server на виртуальных машинах Azure. Если рабочая нагрузка не так велика, могут потребоваться не все рекомендуемые варианты оптимизации. При оценке этих рекомендаций учитывайте актуальные потребности в производительности, затраты и характер рабочих нагрузок.
Дополнительные сведения см. в других статьях этой серии: Контрольный список, Размер виртуальной машины, Безопасность, Конфигурация HADR, Сбор базовых показателей.
Контрольный список
Ознакомьтесь со следующим контрольным списком, содержащим краткий обзор рекомендаций по хранилищу, которые более подробно описываются далее в этой статье.
- Отслеживайте приложение и определите требования к пропускной способности и задержке хранилища для данных, журналов и
tempdb
файлов SQL Server перед выбором типа диска. - При наличии настройте файлы данных и журналов на локальном SSD-томе D:. Расширение агента SQL IaaS управляет папкой и разрешениями, которые требуются при повторной настройке.
- Чтобы оптимизировать производительность хранилища, запланируйте максимально возможное количество некешированных операций ввода-вывода в секунду и используйте кеширование данных в качестве функции производительности при чтении данных, избегая при этом установки ограничения на виртуальные машины и диски.
- При использовании виртуальных машин SQL Server серии Ebdsv5 или Ebsv5 используйте Премиум SSD v2 для обеспечения наилучшего соотношения цены и производительности. Вы можете развернуть виртуальную машину SQL Server с Premium SSD версии 2 с помощью портала Azure, которая находится в предварительной версии.
- Если для рабочей нагрузки требуется более 160 000 операций ввода-вывода в секунду, используйте SSD уровня "Премиум" версии 2 или дисков Azure Ultra.
- Поместите данные, журналы и
tempdb
файлы на отдельные диски.- Для диска данных используйте диски класса Premium P30 и P40 или меньше , чтобы обеспечить поддержку кэша. При использовании виртуальных машин серии Ebdsv5 используйте диски типа Premium SSD v2, которые обеспечивают лучшее соотношение цены и производительности для рабочих нагрузок, требующих высокой производительности IOPS и пропускной способности ввода-вывода.
- Для плана использования диска журнала для оценки емкости и тестирования производительности в сравнении с затратами при выборе между дисками SSD уровня "Премиум" версии 2 или SSD уровня "Премиум" P30 — P80
- Если требуется задержка хранения менее миллисекунды, используйте SSD уровня Premium версии 2 или Azure ультра диски для журнала транзакций.
- Для развертываний виртуальных машин серии M рассмотрите использование ускорителя записи вместо дисков Azure Ultra.
- Поместите tempdb на временный диск (временный диск является временным и по умолчанию используется
D:\
) для большинства рабочих нагрузок SQL Server, которые не являются частью экземпляра отказоустойчивого кластера (FCI) после выбора оптимального размера виртуальной машины.- Если ёмкость локального диска недостаточна для
tempdb
, рассмотрите возможность увеличения размера виртуальной машины. Дополнительные сведения см. в политиках кэширования файлов данных.
- Если ёмкость локального диска недостаточна для
- Для экземпляров отказоустойчивого кластера (FCI) разместите
tempdb
в общем хранилище.- Если рабочая нагрузка FCI сильно зависит от
tempdb
производительности диска, то для достижения расширенной конфигурации разместитеtempdb
на локальном эфемерном диске SSD (по умолчаниюD:\
), который не входит в состав хранилища FCI. Эта конфигурация нуждается в специальном мониторинге и вмешательстве, чтобы локальный временный диск SSD (по умолчаниюD:\
) оставался доступным постоянно, так как любые сбои этого диска не инициируют действия со стороны FCI.
- Если рабочая нагрузка FCI сильно зависит от
- Распределите нагрузку по нескольким дискам данных Azure с помощью дисковых пространств, чтобы увеличить пропускную способность операций ввода-вывода до ограничений IOPS и пропускной способности целевой виртуальной машины.
- Установите кэширование на узле в режим только для чтения для дисков файлов данных.
- Задайте значение none для кэширования хоста на дисках файлов журнала.
- Не следует включать кэширование для чтения и записи на дисках, содержащих файлы данных или журналов SQL Server.
- Всегда останавливайте службу SQL Server перед изменением настроек кеширования диска.
- При переносе нескольких разных рабочих нагрузок в облако Azure Elastic SAN может быть экономичным решением для консолидированного хранилища. Однако при использовании Azure Elastic SAN достижение желаемого уровня IOPS/пропускной способности для рабочих нагрузок SQL Server часто требует перепроектировки емкости. Хотя обычно не подходит для отдельных рабочих нагрузок SQL Server, вы можете достичь экономичного решения при сочетании рабочих нагрузок с низкой производительностью с SQL Server.
- Для рабочих нагрузок разработки и тестирования, а также для долгосрочного архивирования резервных копий рассмотрите возможность использования стандартного хранилища. Не рекомендуется использовать hdD/SSD уровня "Стандартный" для рабочих нагрузок.
- Дисковое ускорение на основе кредитов (P1–P20) следует использовать только для небольших нагрузок разработки и тестирования, а также систем структурных подразделений.
- Чтобы оптимизировать производительность хранилища, запланируйте наибольшее количество доступных некэшированных IOPS и используйте кэширование данных как механизм повышения производительности для операций чтения данных, избегая лимитирования и ограничения виртуальных машин и дисков.
- Отформатируйте диск данных с размером единиц размещения 64 КБ для всех файлов данных на этом диске, за исключением временного диска
D:\
(размер которого по умолчанию составляет 4 КБ). Виртуальные машины SQL Server, развернутые через Azure Marketplace, поставляются с дисками данных, отформатированными с размером единицы размещения 64 КБ и настройками чередования для пула хранения. - Настройте учетную запись хранения в том же регионе, что и виртуальная машина SQL Server.
- Отключите геоизбыточное хранилище Azure (георепликацию) и используйте LRS (локально избыточное хранилище) в учетной записи хранения.
- Включите оценку лучших практик SQL, чтобы выявить возможные проблемы с производительностью и убедиться, что виртуальная машина SQL Server настроена в соответствии с лучшими практиками.
- Просмотрите и отслеживайте ограничения дисков и виртуальных машин с помощью метрик использования операций ввода-вывода в хранилище.
- Исключите файлы SQL Server из сканирования антивирусным программным обеспечением, включая файлы данных, файлы журналов и файлы резервной копии.
Чтобы сравнить контрольный список хранилища с другими рекомендациями, ознакомьтесь с полным контрольным списком рекомендаций по производительности.
Обзор
Чтобы найти самую эффективную конфигурацию для рабочих нагрузок SQL Server на виртуальной машине Azure, начните с измерения производительности хранилища вашего бизнес-приложения. Выяснив требования к хранилищу, выберите виртуальную машину, которая поддерживает необходимый уровень операций ввода-вывода в секунду и пропускной способности с соответствующим соотношением памяти и виртуальных ядер.
Выберите размер виртуальной машины с достаточной масштабируемостью хранилища для вашей рабочей нагрузки и сочетанием дисков (обычно в пуле носителей), которое соответствует требованиям вашего бизнеса к емкости и производительности.
Тип диска зависит как от типа файла, размещенного на диске, так и от ваших требований к максимальной производительности.
Совет
Подготовка виртуальной машины SQL Server с помощью портала Azure поможет вам в процессе настройки хранилища и реализует большинство рекомендаций по хранению, таких как создание отдельных пулов хранилищ для файлов данных и журналов, назначение tempdb
на D:\
диск и включение оптимальной политики кэширования. Дополнительные сведения о подготовке и настройке хранилища см. в разделе Конфигурация хранилища виртуальной машины SQL.
Типы дисков виртуальной машины
Вы можете выбирать уровень производительности для своих дисков. Типы управляемых дисков, доступные в качестве базового хранилища (перечислены в порядке увеличения производительности), включают стандартные жесткие диски (HDD), стандартные твердотельные накопители (SSD), твердотельные накопители премиум-класса (SSD), Premium SSD v2 и Ultra-диски.
Для стандартных жестких дисков, стандартных SSD и премиальных SSD производительность диска увеличивается с его размером, группируясь по меткам премиальных дисков, таким как P1 с объемом 4 ГиБ и производительностью 120 IOPS, и до P80 с объемом памяти 32 ТиБ и 20 000 IOPS. Хранилище категории "Премиум" поддерживает кеш хранилища, который помогает повысить производительность операций чтения и записи для некоторых рабочих нагрузок. Дополнительные сведения см. в статье Обзор управляемых дисков.
Производительность 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
При выполнении рабочих нагрузок SQL Server в поддерживаемых регионах следует использовать диски SSD уровня "Премиум" версии 2, если текущие ограничения подходят для вашей среды. В зависимости от вашей конфигурации, Премиум SSD v2 может быть дешевле, чем Премиум SSD, при этом обеспечивая улучшение производительности. С помощью SSD уровня "Премиум" версии 2 можно отдельно настроить пропускную способность или операции ввода-вывода в секунду независимо от размера диска. Возможность индивидуально настраивать параметры производительности позволяет повысить экономию затрат и позволяет выполнять скрипт изменений в соответствии с требованиями к производительности в течение ожидаемых или известных периодов необходимости.
Мы рекомендуем использовать SSD уровня "Премиум" версии 2 при использовании серии виртуальных машин Ebdsv5 или Ebsv5, так как это более экономичное решение для этих высокопроизводительных компьютеров пропускной способности ввода-вывода. Если для рабочей нагрузки требуется более 160 000 операций ввода-вывода в секунду, рассмотрите возможность использования дисков SSD уровня "Премиум" версии 2 или "Ультра".
Вы можете развернуть виртуальные машины SQL Server с SSD уровня "Премиум" версии 2 с помощью портала Azure (в настоящее время доступно в предварительном просмотре).
Если вы развертываете виртуальную машину SQL Server с помощью портал Azure и хотите использовать SSD уровня "Премиум" версии 2, вы в настоящее время ограничены виртуальными машинами серии Ebdsv5 или Ebsv5. Однако если вы вручную создадите виртуальную машину с хранилищем SSD уровня "Премиум" версии 2, а затем вручную установите SQL Server на виртуальной машине, можно использовать любую серию виртуальных машин, поддерживающую SSD уровня "Премиум" версии 2. Обязательно зарегистрируйте виртуальную машину SQL Server в расширении агента IaaS SQL, чтобы воспользоваться всеми преимуществами , предоставляемыми расширением.
Azure Elastic SAN
Azure Elastic SAN — это решение, подключенное к сети, которое предоставляет клиентам гибкое и масштабируемое решение с возможностью снижения затрат путем консолидации хранилища. Azure Elastic SAN предоставляет экономичное, производительное и надежное решение для хранения блоков, которое подключается к различным вычислительным службам Azure по протоколу iSCSI. Elastic SAN обеспечивает бесшовный переход из существующей SAN-системы хранения в облако без необходимости рефакторинга архитектуры клиентских приложений.
Это решение способно масштабироваться до миллионов операций ввода-вывода в секунду, обеспечивая двузначные показатели ГБ/с пропускной способности и низкую однозначную задержку в миллисекундах, а также встроенную устойчивость для минимизации времени простоя. Используйте Azure Elastic SAN, если необходимо объединить хранилище, работать с несколькими вычислительными службами или иметь рабочие нагрузки, требующие высокого уровня пропускной способности при управлении хранилищем по пропускной способности сети. Однако так как для достижения нужного уровня IOPS/пропускной способности рабочих нагрузок SQL Server часто требуется перепровизирование ёмкости, обычно не подходит для одного рабочего процесса SQL Server. Чтобы достичь наиболее экономичного решения с помощью Elastic SAN, рассмотрите возможность использования в качестве хранилища для нескольких рабочих нагрузок SQL Server или сочетания SQL Server и других низкопроизводительных рабочих нагрузок.
Рассмотрите возможность размещения рабочих нагрузок SQL Server в эластичной сети SAN для повышения затрат, консолидации хранилища, динамического общего доступа к производительности и повышения пропускной способности хранилища.
SSD ценовой категории «Премиум»
Используйте диски SSD класса Premium для файлов данных и журналов для рабочих нагрузок SQL Server. Операции ввода-вывода в секунду (IOPS) и пропускная способность для дисков SSD класса Premium зависят от размера и типа диска.
Для производственных рабочих нагрузок используйте диски P30 и/или P40 для файлов данных SQL Server, чтобы обеспечить кеширование, и диски от P30 до P80 для файлов журнала транзакций SQL Server. Для оптимальной общей стоимости владения начните с P30s (5000 операций ввода-вывода в секунду/200 МБИТ/с) для файлов данных и журналов и выберите только более высокие емкости, если необходимо контролировать количество дисков виртуальной машины. Для разработки и тестирования или небольших систем можно использовать размеры меньше P30, так как они поддерживают кэширование, но они не предлагают зарезервированные цены.
Для рабочих нагрузок OLTP сопоставьте целевое количество операций ввода-вывода в секунду на диск (или пул носителей) с требованиями к производительности, используя рабочие нагрузки во время пиковой нагрузки и счетчики производительности Disk Reads/sec
+ Disk Writes/sec
. Для рабочих нагрузок хранилища данных и отчетов сопоставьте целевую пропускную способность, используя нагрузки в пиковое время и Disk Read Bytes/sec
+ Disk Write Bytes/sec
.
Используйте дисковые пространства для достижения оптимальной производительности и настройте два пула: один для файлов журнала, а другой — для файлов данных. Если вы не используете чередование дисков, используйте два премиальных SSD-диска, подключенные как отдельные логические диски, где один диск содержит файл журнала, а другой — данные.
Обеспеченные IOPS и пропускная способность на диск, который используется как часть вашего пула хранения. Объединенные возможности IOPS и пропускной способности дисков — это максимальная мощность, не превышая ограничений пропускной способности виртуальной машины.
Рекомендуется использовать как можно меньшее количество дисков при соблюдении минимальных требований к количеству операций ввода-вывода в секунду (и пропускной способности) и емкости. Однако соотношение цены и производительности, как правило, лучше при использовании большого количества маленьких дисков, чем небольшого количества больших дисков.
Масштабирование премиум-дисков
Размер SSD уровня "Премиум" определяет начальный уровень производительности диска. Назначайте уровень производительности при развертывании или измените его позже, не меняя размер диска. При увеличении спроса вы можете повысить уровень производительности в соответствии с требованиями вашего бизнеса.
Изменение уровня производительности позволяет администраторам подготовиться к более высоким требованиям и удовлетворить их, не полагаясь на всплеск активности дисков.
Используйте более высокую производительность так долго, как это необходимо, если выставление счетов рассчитывается с учетом уровня производительности хранилища. Обновляйте уровень в соответствии с требованиями к производительности без увеличения емкости. Возвращайтесь к исходному уровню, когда дополнительная производительность больше не требуется.
Это экономичное и временное расширение производительности — хороший вариант использования для конкретных событий, таких как закупки, тестирование производительности, обучающие мероприятия и другие непродолжительные периоды, когда повышение производительности требуется только на короткий срок.
Дополнительные сведения см. в разделе Уровни производительности для управляемых дисков.
Диск Azure категории "Ультра"
Если требуется субмиллисекундное время отклика с уменьшенной задержкой, рассмотрите возможность использования Azure Ultra Disk для диска журнала SQL Server, или даже для диска данных в приложениях, которые крайне чувствительны к задержке ввода-вывода.
Диск категории "Ультра" можно настроить так, чтобы емкость и количество операций ввода-вывода в секунду масштабировались независимо. Используя диск категории "Ультра", администраторы могут подготовить диск к работе с учетом требований приложения к емкости, количеству операций ввода-вывода в секунду и пропускной способности.
Диск Ultra не поддерживается во всех сериях виртуальных машин и имеет другие ограничения, такие как доступность в регионах, избыточность и поддержка Azure Backup. Дополнительные сведения и полный список ограничений см. в разделе Использование дисков Azure категории "Ультра".
Жесткие диски и твердотельные накопители категории "Стандартный"
Стандартные жесткие диски и твердотельные накопители имеют разную задержку и полосу пропускания и рекомендуются только в качестве рабочих нагрузок для разработки и тестирования. Для рабочих нагрузок следует использовать SSD "Премиум" v2 или SSD "Премиум". Если вы используете стандартные SSD (сценарии разработки и тестирования), рекомендуется добавить максимальное количество дисков данных, поддерживаемых размером виртуальной машины, и использовать чередование дисков с помощью технологии «Дисковые пространства» для оптимальной производительности.
Кэширование
Виртуальные машины, поддерживающие кэширование премиум-хранилища, могут воспользоваться дополнительной функцией Azure BlobCache или кэшированием на узле для увеличения IOPS и пропускной способности виртуальной машины. Виртуальные машины, использующие как премиум-хранилище, так и кэширование премиум-хранилища, имеют два разных ограничения пропускной способности, которые можно использовать совместно для улучшения производительности хранилища.
Пропускная способность операций ввода-вывода в секунду и МБ/с без кэширования засчитывается в некэшированные ограничения пропускной способности диска виртуальной машины. Максимальные кэшированные ограничения предоставляют еще один буфер для чтений, который помогает справляться с ростом и непредвиденными пиками.
Включите кэширование ценовой категории "Премиум" всякий раз, когда этот параметр поддерживается, чтобы значительно повысить производительность операций чтения на диске данных без дополнительных затрат.
Операции чтения и записи в Azure BlobCache (кэшированные операции ввода-вывода в секунду и пропускная способность) не учитываются в некичированных ограничениях операций ввода-вывода в секунду и пропускной способности виртуальной машины.
Примечание.
Кеширование дисков не поддерживается для дисков объемом от 4 ТиБ (P50 и выше). Если к виртуальной машине подключено несколько дисков, то кэширование применяется ко всем дискам, размер которых меньше 4 ТиБ. Дополнительные сведения см. в разделе Кеширование диска.
Некешированная пропускная способность
Максимальные некэшированные операции ввода-вывода на диск (IOPS) и пропускная способность — это максимальные ограничения удаленного хранилища, которые может обрабатывать виртуальная машина. Это ограничение определяется на виртуальной машине и не является ограничением базового хранилища дисков. Это ограничение применяется к операциям ввода-вывода для дисков данных, удаленно подключенных к виртуальной машине, но не к локальным операциям ввода-вывода для временного диска (D:\
) или диска ОС.
Количество небуферизованных операций ввода-вывода в секунду (IOPS) и пропускная способность, доступные для виртуальной машины, можно проверить в документации виртуальной машины.
Например, в документации для серии M указано, что максимальная некешированная пропускная способность для виртуальной машины Standard_M8ms составляет 5000 операций ввода-вывода в секунду и 125 Мбит/с пропускной способности некешированного диска.
Аналогичным образом можно увидеть, что Standard_M32ts поддерживает 20 000 операций ввода-вывода на диск без кэширования и пропускную способность диска 500 МБ/с без кэширования. Это ограничение регулируется на уровне виртуальной машины независимо от базового хранилища дисков класса Premium.
Дополнительные сведения см. в разделе Ограничения кешированных и некешированных дисков.
Пропускная способность кешированного и временного хранилища
Максимальное ограничение пропускной способности кэшированного и временного хранилища является отдельным ограничением от некичированного ограничения пропускной способности на виртуальной машине. Azure BlobCache состоит из сочетания памяти случайного доступа узла виртуальной машины и локально подключенного SSD. Временный диск (D:\
диск) на виртуальной машине также размещается на этом локальном SSD.
Максимальное ограничение пропускной способности кешированного и временного хранилища определяет операции ввода-вывода для локального временного диска (D:\
) и Azure BlobCache, только если включено кеширование на узле.
Если кэширование включено для хранилища уровня "Премиум", виртуальные машины могут масштабироваться за пределы ограничений IOPS и пропускной способности некэшированных виртуальных машин удаленного хранилища.
Только некоторые виртуальные машины поддерживают как хранилище класса "Премиум", так и кэширование этого хранилища (что необходимо проверить в документации по виртуальной машине). Например, в документации для серии M указано, что поддерживается как хранилище премиум-класса, так и кеширование хранилища премиум-класса:
Ограничения кэша зависят от размера виртуальной машины. Например, Standard_M8ms виртуальная машина поддерживает 10000 кэшированных операций ввода-вывода в секунду и пропускную способность кэшированного диска размером 1000 МБИТ/с с общим размером кэша 793 ГиБ. Аналогичным образом виртуальная машина Standard_M32ts поддерживает 40000 кэшированных операций ввода-вывода в секунду и пропускную способность кэшированного диска размером 400 МБИТ/с с общим размером кэша 3174 ГиБ.
Вы можете вручную включить кеширование узла на существующей виртуальной машине. Остановите все рабочие нагрузки приложений и службы SQL Server перед внесением изменений в политику кэширования виртуальной машины. Изменение любого из параметров кэша виртуальных машин приводит к отсоединению и повторному присоединению целевого диска после применения параметров.
Политики кеширования файлов данных
Политика кеширования хранилища зависит от типа файлов данных SQL Server, размещенных на диске.
В следующей таблице приводится сводка рекомендуемых политик кеширования в зависимости от типа данных SQL Server.
Диск SQL Server | Рекомендация |
---|---|
Диск данных | Включите кеширование Read-only для дисков, на которых размещены файлы данных SQL Server.Чтение из кеша будет выполняться быстрее, чем некешированное чтение с диска данных. Некэшированные операции ввода-вывода в секунду и пропускная способность, сложенные с кэшированными операциями ввода-вывода в секунду и пропускной способностью, дают общую возможную производительность, доступную для виртуальной машины в пределах её ограничений, но фактическая производительность варьируется в зависимости от способности рабочей нагрузки использовать кэш (коэффициент попадания кэша). |
Диск журнала транзакций | Установите политику кеширования в значение None для дисков, на которых размещен журнал транзакций. Нет преимущества в производительности при включении кэширования диска журнала транзакций. Более того, включение любого из Read-only или Read/Write кэширования на диске журнала может привести к снижению производительности записи на диск и уменьшить доступный объем кэша для операций чтения на диске данных. |
Диск операционной системы |
Read/write — политика кеширования по умолчанию для диска ОС.Не рекомендуется изменять уровень кэширования диска ОС. |
tempdb |
Если tempdb не удается поместить на временный диск D:\ из-за причин емкости, измените размер виртуальной машины, чтобы получить более большой временный диск или поместить tempdb на отдельный диск данных с Read-only настроенным кэшированием.Кэш виртуальных машин и временный диск оба используют локальный SSD, поэтому учитывайте это при определении размера, так как tempdb операции ввода-вывода будут учитываться в рамках ограничений на кэшированные операции ввода-вывода и пропускную способность виртуальных машин при размещении на эфемерном диске. |
Внимание
При изменении параметра кэша диска Azure целевой диск отключается, а затем вновь подключается. При изменении параметра кэша для диска, на котором размещается данные, журнал или файлы приложений SQL Server, обязательно завершите работу службы SQL Server вместе со всеми другими связанными службами, чтобы избежать повреждения данных.
Дополнительные сведения см. в разделе Кеширование диска.
Полосность дисков
Анализируйте пропускную способность и полосу пропускания, необходимые для файлов данных SQL, чтобы определить количество дисков данных, включая файл журнала и tempdb
. Ограничения пропускной способности и полосы пропускания зависят от размера виртуальной машины. Для получения дополнительной информации см. Размеры виртуальных машин.
Добавьте дополнительные диски данных и используйте чередование дисков для большей пропускной способности. Например, приложение с пропускной способностью 12 000 операций ввода-вывода в секунду и 180 МБ/с может использовать три полосатых диска P30 для доставки пропускной способности 15 000 операций ввода-вывода в секунду и 600 МБ/с.
Сведения о настройке стриппинга дисков см. в стриппинг дисков.
Установка ограничения на использование диска
Существуют ограничения пропускной способности на уровне диска и виртуальной машины. Верхние границы операций ввода-вывода в секунду для каждой виртуальной машины и диска различаются и не зависят друг от друга.
Приложения, потребляющие ресурсы сверх этих ограничений, будут регулироваться (это также называется ограничением на использование). Выберите виртуальную машину и размер диска в полосе диска, соответствующей требованиям приложения и не сталкивающейся с ограничениями. Чтобы решить проблему ограничения на использование, используйте кеширование или настройте приложение так, чтобы требовалась меньшая пропускная способность.
Например, если приложению требуется пропускная способность 12 000 операций ввода-вывода в секунду и 180 Мбит/с, можно:
- Используйте Standard_M32ms, которая имеет максимальную пропускную способность диска без кэширования 20 000 операций ввода-вывода в секунду и 500 МБИТ/с.
- Объедините три диска P30 в RAID 0 для обеспечения 15 000 операций ввода-вывода в секунду и пропускной способности 600 МБ/с.
- Используйте виртуальную машину Standard_M16ms и кэширование хоста для задействования локального кэша вместо использования пропускной способности.
Виртуальные машины, настроенные для увеличения масштаба во время высокой загрузки, должны подготавливать хранилище с достаточным количеством операций ввода-вывода в секунду и пропускной способностью для поддержки максимального размера виртуальной машины, сохраняя общее количество дисков меньше или равно максимальному числу, поддерживаемого наименьшим номером SKU виртуальной машины, предназначенным для использования.
Дополнительные сведения об ограничениях на использование дисков и применении кеширования, чтобы избежать эти ограничения, см. в разделе Установка ограничения на использование операций ввода-вывода на диске.
Примечание.
При некоторых ограничениях на использование диска производительность для пользователей может оставаться удовлетворительной; рекомендуется настраивать и поддерживать рабочие нагрузки, а не увеличивать размер виртуальной машины, чтобы сбалансировать затраты и производительность для вашего бизнеса.
Ускорение записи
Ускорение записи — это функция диска, доступная только для виртуальных машин серии M. Цель ускорения записи — снизить задержку ввода-вывода при записи в хранилище Azure категории "Премиум", когда вам нужна задержка ввода-вывода, не превышающая однозначной цифры, из-за миссионно-критических рабочих нагрузок OLTP большого объема или сред хранилищ данных.
Используйте ускорение записи, чтобы уменьшить задержку записи на диск, на котором размещены файлы журнала. Не используйте ускорение записи для файлов данных SQL Server.
Диски ускорителя записи используют тот же предел операций ввода-вывода в секунду, что и виртуальная машина. Присоединенные диски не могут превышать лимит IOPS ускорителя записи для виртуальной машины.
В следующей таблице описано количество дисков данных и операций ввода-вывода в секунду, поддерживаемых для каждой виртуальной машины:
SKU виртуальной машины | Диски ускорителя записи | Число операций ввода-вывода в секунду на диск ускорителя записи для каждой виртуальной машины (VM) |
---|---|---|
M416ms_v2, M416s_v2 | 16 | 20000 |
M128ms, M128s | 16 | 20000 |
M208ms_v2, M208s_v2 | 8 | 10 000 |
M64ms, M64ls, M64s | 8 | 10 000 |
M32ms, M32ls, M32ts, M32s | 4 | 5000 |
M16ms, M16s | 2 | 2500 |
M8ms, M8s | 1 | 1250 |
Существует несколько ограничений для использования ускорения записи. Дополнительные сведения см. в разделе Ограничения при использовании Ускорителя записи.
Сравнение с диском Azure ценовой категории "Ультра"
Самая большая разница между ускорением записи и дисками Azure ценовой категории "Ультра" заключается в том, что ускорение записи — это функция виртуальной машины, доступная только для дисков серии M и Azure ценовой категории "Ультра" — это возможность хранения. Ускорение записи — это оптимизированный для записи кэш с собственными ограничениями на основе размера виртуальной машины. Диски Azure ценовой категории "Ультра" — это вариант хранилища дисков с низкой задержкой для виртуальных машин Azure.
По возможности используйте для диска журнала транзакций ускорение записи вместо дисков категории "Ультра". Для виртуальных машин, которые не поддерживают ускорение записи, но требуют низкой задержки в журнале транзакций, используйте диски Azure ultra.
Мониторинг производительности хранилища
Чтобы оценить потребности в хранилище и определить, насколько успешно работает хранилище, необходимо понять, что нужно измерять и что означают эти индикаторы.
Операции ввода-вывода в секунду — это количество запросов приложения в хранилище в секунду. Измеряйте IOPS (количество операций ввода-вывода в секунду) с помощью счетчиков Монитора производительности Disk Reads/sec
и Disk Writes/sec
. Приложениям OLTP (обработки транзакций в реальном времени) требуется более высокое количество операций ввода-вывода в секунду для достижения оптимальной производительности. Примерами приложений OLTP являются системы обработки платежей, системы онлайн-покупок и системы торговых автоматов.
Пропускная способность — это объем данных, отправляемых в базовое хранилище, часто измеряемый в мегабитах в секунду. Измеряйте пропускную способность с помощью счетчиков Монитора производительности: Disk Read Bytes/sec
и Disk Write Bytes/sec
.
Хранилище данных оптимизировано для увеличения пропускной способности, а не на IOPS. Такие приложения, как хранилища данных для анализа, отчетности, рабочие потоки извлечения, преобразования и загрузки, а также другие целевые объекты бизнес-аналитики, являются примерами приложений хранилища данных.
Размеры единиц ввода-вывода влияют на количество операций ввода-вывода в секунду и пропускную способность: меньшие размеры единиц ввода-вывода приводят к большему количеству операций ввода-вывода в секунду, а большие размеры единиц ввода-вывода обеспечивают более высокую пропускную способность. SQL Server автоматически выбирает оптимальный размер ввода-вывода. Для получения дополнительной информации см. раздел Оптимизация показателей IOPS, пропускной способности и задержки для ваших приложений.
Существуют определенные метрики Azure Monitor, которые являются бесценными для обнаружения ограничений на уровне виртуальной машины и диска, а также потребления и работоспособности кэша AzureBlob. Ключевые счетчики, которые следует добавить в решение для мониторинга и на панель мониторинга портала Azure, см. в разделе Метрики потребления хранилища.
Примечание.
В настоящее время Azure Monitor не предлагает метрики уровня диска для временного диска (D:\)
. Процент использования кэшированных операций ввода-вывода (IOPS) и пропускной способности VM будет отражать совокупное потребление как эфемерного временного диска ((D:\)
), так и кэширования узла.
Мониторинг роста журнала транзакций
Так как полный журнал транзакций может привести к проблемам с производительностью и сбоям, важно отслеживать доступное пространство в журнале транзакций, а также используемое дисковое пространство диска, в котором хранится журнал транзакций. Устранение проблем с журналом транзакций, прежде чем они влияют на рабочую нагрузку.
Ознакомьтесь с руководством по устранению проблем с полным журналом транзакций, если он переполнен.
Если необходимо расширить диск, вы можете сделать это на панели хранилища ресурса виртуальных машин SQL, если вы развернули образ SQL Server из Azure Marketplace или на панели дисков для виртуальной машины Azure и самоустановленного SQL Server.
Следующие шаги
Дополнительные сведения см. в других статьях из этой серии материалов с рекомендациями:
Рекомендации по безопасности см. в разделе Вопросы безопасности SQL Server на виртуальных машинах Azure.
Чтобы узнать, как провести детализированное тестирование производительности SQL Server на виртуальных машинах Azure с помощью бенчмарков TPC-E и TPC-C, см. блог Optimize OLTP performance.
Ознакомьтесь с другими статьями, посвященными виртуальным машинам SQL Server, в разделе Обзор SQL Server на виртуальных машинах Azure. Если у вас есть вопросы по виртуальным машинам SQL Server, см. раздел часто задаваемых вопросов.