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


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

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

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

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

Обзор

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

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

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

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

Хранилище

Производительность SQL Server сильно зависит от подсистемы ввода-вывода. Измеряйте производительность хранилища по числу операций ввода-вывода в секунду (IOPS) и пропускной способности. Если ваша база данных не вмещается в физической памяти, 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 000 операций чтения и 10 000 операций записи IOPS, вы можете выбрать E16s_v3 (до 32 000 кэшированных и 25 600 некэшированных операций ввода-вывода в секунду) или M16_s (до 20 000 кэшированных и 10 000 некэшированных операций ввода-вывода в секунду) с двумя дисками P30, объединенными в полосы с помощью дисковых пространств.

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

Память

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

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

Вычислять

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

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

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

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

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

Примечание.

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

Подробные рекомендации по каждой области оптимизации:

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