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


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

Область применения:SQL Server на виртуальной машине Azure

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

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

Обзор

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

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

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

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

Хранилище

Производительность SQL Server в значительной степени зависит от подсистемы ввода-вывода. Производительность хранилища измеряется количеством операций ввода-вывода в секунду и пропускной способностью. Если ваша база данных не вмещается в физической памяти, SQL Server постоянно передает страницы базы данных в буферный пул и из него. Файлы данных для SQL Server должны обрабатываться по-разному. Доступ к файлам журнала осуществляется последовательно, за исключением случаев, когда транзакция должна быть откатана и файлы данных, включая tempdb, доступны в случайном порядке. При использовании медленных подсистем ввода-вывода пользователи могут столкнуться с проблемами производительности (например, долгое время отклика и задачи, которые не завершены из-за истечения времени ожидания).

Виртуальные машины Azure Marketplace используют файлы журналов на физическом диске, который отделен от файлов данных по умолчанию. Количество tempdb и размер файлов данных соответствуют рекомендациям и предназначены для эфемерного D:\ диска.

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

  • \Логический диск\Обращений чтения с диска/сек (IOPS чтения).
  • \Логический диск\Запись на диск/сек (IOPS записи)
  • \LogicalDisk\Disk Read Bytes/Sec (требования к пропускной способности чтения данных, журнала и tempdb файлов)
  • \LogicalDisk\Disk Write Bytes/Sec (требования к пропускной способности записи данных, журнала и tempdb файлов)

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

Если вашей рабочей нагрузке требуется 20 тыс. чтений IOPS и 10 тыс. записей IOPS, вы можете выбрать E16s_v3 (до 32 тыс. кэшированных и 25 600 некэшированных IOPS) или M16_s (до 20 тыс. кэшированных и 10 тыс. некэшированных IOPS) с двумя дисками P30, объединенными в полосу с помощью Storage Spaces.

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

Память

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

Указанные ниже счетчики PerfMon могут помочь проверить работоспособность памяти виртуальной машины SQL Server.

Вычислять

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

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

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

Указанные ниже счетчики PerfMon могут помочь проверить работоспособность вычислений виртуальной машины SQL Server.

  • \Сведения о процессоре(_Total)% Время работы ЦП
  • \Process(sqlservr)% Время процессора.

Примечание.

В идеале старайтесь использовать 80 % вычислительных ресурсов, допускайте пиковые нагрузки выше 90 %, но избегайте постоянного достижения 100 %. По сути, вам нужно только подготовить вычислительные ресурсы, необходимые для приложения, а затем планировать масштабирование в соответствии с требованиями бизнеса.

Следующие шаги

Дополнительные сведения см. в других статьях из этой серии материалов с рекомендациями:

Рекомендации по безопасности см. в разделе Вопросы безопасности SQL Server на виртуальных машинах Azure.

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