Сбор базовых показателей: рекомендации по оптимизации производительности SQL Server на виртуальных машинах Azure
Область применения: SQL Server на виртуальной машине Azure
В этой статье описаны рекомендации по сбору базовых показателей производительности для оптимизации производительности SQL Server на виртуальных машинах Azure.
Как правило, существует компромисс между оптимизацией затрат и оптимизацией производительности. Эта серия рекомендаций по повышению производительности предназначена для достижения оптимальной производительности SQL Server на виртуальных машинах Azure. Если рабочая нагрузка не так велика, могут потребоваться не все рекомендуемые варианты оптимизации. При оценке этих рекомендаций учитывайте актуальные потребности в производительности, затраты и характер рабочих нагрузок.
Обзор
Для директивного подхода рекомендуется собрать данные счетчиков производительности с помощью PerfMon или LogMan и записать статистику ожидания SQL Server, чтобы лучше понять общие проблемы и потенциальные узкие места исходного окружения.
Начните со сбора данных о ЦП, памяти, операциях ввода-вывода, пропускной способности и задержке исходной рабочей нагрузки в пиковые периоды, используя контрольный список производительности приложения.
Соберите данные в часы пиковой нагрузки, например рабочие нагрузки в течение обычного рабочего дня, а также данные других процессов с высокой нагрузкой (например, обработка данных в конце дня и рабочие нагрузки извлечения, преобразования и загрузки в выходные дни). Попробуйте увеличить масштаб ресурсов для нетипично интенсивных рабочих нагрузок, таких как обработка данных в конце квартала, а затем уменьшить масштаб по завершении рабочей нагрузки.
Используйте анализ производительности, чтобы выбрать соответствующий размер виртуальной машины с возможностью масштабирования в соответствии с требованиями к производительности рабочей нагрузки.
Хранилище
Производительность SQL Server в значительной степени зависит от подсистемы ввода-вывода. Производительность хранилища измеряется количеством операций ввода-вывода в секунду и пропускной способностью. Если ваша база данных не вмещается в физической памяти, SQL Server постоянно передает страницы базы данных в буферный пул и из него. Файлы данных для SQL Server должны обрабатываться по-разному. Доступ к файлам журнала является последовательным, за исключением случаев, когда транзакция должна быть откатена, в которой файлы данных, включая tempdb
случайный доступ. При использовании медленных подсистем ввода-вывода пользователи могут столкнуться с проблемами производительности (например, долгое время отклика и задачи, которые не завершены из-за истечения времени ожидания).
Виртуальные машины Azure Marketplace используют файлы журналов на физическом диске, который отделен от файлов данных по умолчанию. Количество tempdb
и размер файлов данных соответствуют рекомендациям и предназначены для эфемерного D:\
диска.
Указанные ниже счетчики PerfMon позволяют проверить пропускную способность ввода-вывода, необходимую для SQL Server.
- \Логический диск\Обращений чтения с диска/сек (число операций ввода-вывода в секунду при чтении).
- \Логический диск\Обращений записи на диск/сек (число операций ввода-вывода в секунду при записи).
- \LogicalDisk\Disk Read Bytes/Sec (требования к пропускной способности чтения данных, журнала и
tempdb
файлов) - \LogicalDisk\Disk Write Bytes/Sec (требования к пропускной способности записи данных, журнала и
tempdb
файлов)
Основываясь на требованиях к операциям ввода-вывода в секунду и пропускной способности при пиковых нагрузках, оцените размеры виртуальных машин, емкость которых соответствует вашим измерениям.
Если рабочей нагрузке требуется выполнять 20 тыс. операций ввода-вывода в секунду при чтении и 10 тыс. операций ввода-вывода в секунду при записи, вы можете выбрать E16s_v3 (до 32 тыс кэшированных и 25 600 некэшированных операций ввода-вывода в секунду) или M16_s (до 20 тыс. кэшированных и 10 тыс. некэшированных операций ввода-вывода в секунду) с 2 дисками P30, чередующимися с помощью дисковых пространств.
Обязательно учитывайте требования для пропускной способности и операций ввода-вывода в секунду для рабочей нагрузки, так как виртуальные машины имеют разные пределы масштабирования для этих показателей.
Память
Отслеживайте внешнюю память, используемую операционной системой, а также память, используемую внутри SQL Server. Определение нагрузки для любого из этих компонентов поможет определить размер виртуальных машин и возможности для настройки.
Указанные ниже счетчики PerfMon могут помочь проверить работоспособность памяти виртуальной машины SQL Server.
- \Память\Доступный объем в МБ
- \SQLServer. Диспетчер памяти\Память целевого сервера (КБ).
- \SQLServer. Диспетчер памяти\Общая память сервера (КБ).
- \SQLServer. Диспетчер буферов\Отложенных записей/с.
- \SQLServer. Диспетчер буферов\Ожидаемое время существования страницы.
Службы вычислений
Управление вычислениями в Azure осуществляется иначе, чем в локальном окружении. Локальные серверы создаются таким образом, чтобы в течение нескольких лет их не нужно было обновлять. Это снижает затраты на управление и приобретение нового оборудования. Виртуализация позволяет устранить некоторые из этих проблем, но приложения оптимизированы, чтобы использовать максимум преимуществ базового оборудования. Это означает, что при любом значительном изменении потребления ресурсов требуется повторная балансировка всего физического окружения.
Это не является проблемой в Azure, где легко создать виртуальную машину на основе другой серии оборудования и даже в другом регионе.
В Azure вы хотите использовать как можно больше ресурсов виртуальных машин. Поэтому виртуальные машины Azure должны быть настроены таким образом, чтобы средняя нагрузка ЦП была максимально высокая и не влияла на рабочую нагрузку.
Указанные ниже счетчики PerfMon могут помочь проверить работоспособность вычислений виртуальной машины SQL Server.
- \Сведения о процессоре(_Total)% Время работы ЦП
- \Обработка(sqlservr)% Загруженность процессора.
Примечание.
В идеале нужно использовать 80 % вычислений, пиковые нагрузки которых выше 90 % (но не достигают 100 %) в течение длительного использования. По сути, вам нужно только подготовить вычисления, необходимые для приложения, а затем запланировать вертикальное увеличение или уменьшение масштаба в соответствии с требованиями бизнеса.
Следующие шаги
Дополнительные сведения см. в других статьях из этой серии материалов с рекомендациями:
Рекомендации по безопасности см. в разделе Вопросы безопасности SQL Server на виртуальных машинах Azure.
Ознакомьтесь с другими статьями, посвященными виртуальным машинам SQL Server, используя руководство с обзором SQL Server на виртуальных машинах с Windows. Если у вас есть вопросы по виртуальным машинам SQL Server, см. раздел часто задаваемых вопросов.