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

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

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

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

Включите Оценку SQL для SQL Server на виртуальных машинах Azure для проверки сервера SQL Server на соответствие рекомендациям (результаты будут отображаться на странице управления виртуальными машинами SQL на портале Azure).

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

Обзор

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

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

Размер виртуальной машины

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

  • Новая серия Ebdsv5 обеспечивает максимально высокое соотношение пропускной способности ввода-вывода и количества виртуальных ядер в Azure, а также соотношение памяти и количества виртуальных ядер, равное 8. Эта серия предлагает наилучшее соотношение цены и качества для рабочих нагрузок SQL Server на виртуальных машинах Azure. Рекомендуется использовать эту серию для большинства рабочих нагрузок SQL Server.
  • Используйте размеры виртуальных машины с 4 или более виртуальными ЦП, например E4ds_v5 или выше.
  • Используйте размеры виртуальных машин, оптимизированные для операций в памяти, для повышения производительности при выполнении рабочих нагрузок SQL Server.
  • Серии Edsv5, M- и Mv2- обеспечивают оптимальное соотношение объема памяти и количества виртуальных ядер, требуемое для рабочих нагрузок OLTP.
  • Виртуальные машины серии M обеспечивают максимально высокое соотношение объема памяти и количества виртуальных ядер в Azure. Рекомендуется использовать эти виртуальные машины для критически важных задач и рабочих нагрузок хранилища данных.
  • Для развертывания виртуальных машин SQL Server следует использовать образы в Azure Marketplace, так как параметры SQL Server и хранилища настроены для оптимальной производительности.
  • Соберите характеристики производительности целевой рабочей нагрузки и используйте их для определения подходящего размера виртуальной машины для вашего бизнеса.
  • Используйте инструмент Помощник по миграции данныхРекомендация SKU для определения оптимального размера виртуальной машины для имеющейся рабочей нагрузки SQL Server.

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

Память

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

  • Выполните мониторинг приложения и определите требования относительно задержки и пропускной способности хранилища для файлов данных SQL Server, журналов, а также файлов tempdb, прежде чем выбрать тип диска.
  • Чтобы оптимизировать производительность хранилища, запланируйте максимально возможное количество некэшированных операций ввода-вывода в секунду и используйте кэширование данных в качестве функции для повышения производительности при чтении данных, избегая при этом установки ограничения и регулирования виртуальных машин и дисков.
  • Разместите файлы данных, журналов и файлы tempdb на разных дисках.
    • В качестве дисков данных используйте диски P30 и P40 категории "Премиум" или меньшего размера, чтобы обеспечить доступность поддержки кеша.
    • Запланируйте емкость для диска журнала и проверьте соотношение производительности и стоимости при оценке дисков P30–P80 категории "Премиум".
      • Если требуется задержка хранилища менее миллисекунды, используйте для журнала транзакций диски Azure категории "Ультра".
      • Для развертываний виртуальных машин серии M рекомендуется использовать Ускоритель записи вместо дисков Azure категории "Ультра".
    • Поместите базу данных tempdb на локальный временный диск SSD (по умолчаниюD:\) для большинства рабочих нагрузок SQL Server, которые не являются частью экземпляра отказоустойчивого кластера (FCI), после выбора оптимального размера виртуальной машины.
      • Если емкости локального диска недостаточно для базы данных tempdb, рассмотрите возможность изменения размера виртуальной машины. Дополнительные сведения см. в разделе Политики кеширования файлов данных.
    • Для FCI tempdb следует поместить в общее хранилище.
      • Если рабочая нагрузка FCI сильно зависит от производительности диска tempdb, то в качестве расширенной конфигурации поместите tempdb на локальный временный диск SSD (по умолчанию D:\), который не является частью хранилища FCI. Для этой конфигурации потребуется пользовательский мониторинг и действия, чтобы обеспечить доступность локального временного диска SSD (по умолчанию D:\), так как любые сбои этого диска не будут активировать действие из FCI.
  • Разделите несколько дисков данных Azure с помощью дисковых пространств, чтобы увеличить пропускную способность ввода-вывода до границ операций ввода-вывода в секунду и пропускной способности целевой виртуальной машины.
  • Установите для кеширования узлов значение "только для чтения" для дисков с файлами данных.
  • Установите для кеширования узлов значение none для дисков с файлами журнала.
    • Не включайте кэширование для чтения и записи на дисках, содержащих SQL Server файлы данных или журналов.
    • Всегда останавливайте работу службы SQL Server перед изменением настроек кеширования диска.
  • Для рабочих нагрузок разработки и тестирования рекомендуется использовать хранилище ценовой категории "Стандартный". Не рекомендуется использовать HDD/SDD (цен. категория "Стандартный") для рабочих нагрузок.
  • Платное ускорение дисков (P1–P20) следует рассматривать только для небольших рабочих нагрузок разработки или тестирования и систем отделов.
  • Подготовьте учетную запись хранения в том же регионе, где размещена виртуальная машина SQL Server.
  • Отключите геоизбыточное хранилище Azure (георепликацию) и используйте LRS (локально избыточное хранилище) в учетной записи хранения.
  • Отформатируйте диск данных с размером единиц размещения 64 КБ для всех файлов данных на этом диске, за исключением временного диска D:\ (размер которого по умолчанию составляет 4 КБ). Виртуальные машины SQL Server, развернутые через Azure Marketplace, поставляются с дисками данных, отформатированными с размером единицы размещения и чередованием для пула носителей, равным 64 КБ.

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

функции SQL Server

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

Azure

Ниже приведен краткий список рекомендаций по конфигурации Azure при выполнении SQL Server на виртуальной машине Azure.

Конфигурация HADR

Возможности HADR (высокая доступность и аварийное восстановление), такие как группы доступности Always On и экземпляр отказоустойчивого кластера, основываются на технологии отказоустойчивого кластера Windows Server. Изучите современные рекомендации по настройке параметров HADR для работы с облачной средой.

Для кластера Windows примените следующие рекомендации:

  • По возможности развертывайте виртуальные машины SQL Server в нескольких подсетях, чтобы не использовать Azure Load Balancer или имя распределенной сети (DNN) для маршрутизации трафика к решению HADR.
  • Измените параметры кластера на менее жесткие, чтобы избежать непредвиденных перерывов в работе из-за временных сбоев сети или обслуживания платформы Azure. Дополнительные сведения см. в разделе Параметры пульса и порога. Для Windows Server 2012 или более поздней версии используйте следующие рекомендованные значения.
    • SameSubnetDelay: 1 секунда;
    • SameSubnetThreshold: 40 пульсов;
    • CrossSubnetDelay: 1 секунда;
    • CrossSubnetThreshold: 40 пульсов.
  • Разместите виртуальные машины в группе доступности или в разных зонах доступности. Дополнительные сведения см. в разделе Параметры доступности виртуальной машины.
  • Используйте одну сетевую карту на узел кластера и одну подсеть.
  • Настройте кворум для голосования в кластере таким образом, чтобы требовалось три голоса или большее нечетное число голосов. Не назначайте голоса регионам аварийного восстановления.
  • Тщательно отслеживайте ограничения ресурсов, чтобы избежать непредвиденных перезапусков или отработки отказа.
    • Используйте последние сборки ОС, драйверов и SQL Server.
    • Оптимизируйте производительность SQL Server на виртуальных машинах Azure. Ознакомьтесь с остальными разделами этой статьи, чтобы получить дополнительные сведения.
    • Сократите или распределите рабочую нагрузку, чтобы не допустить превышения ограничений для ресурсов.
    • Перейдите на виртуальную машину или диск с более высокими значениями ограничений, чтобы избежать их превышения.

Для группы доступности SQL Server или экземпляра отказоустойчивого кластера учитывайте следующие рекомендации:

  • При частом возникновении непредвиденных сбоев следуйте рекомендациям по повышению производительности, приведенным далее в этой статье.
  • Если оптимизация производительности SQL Server виртуальной машины не устраняет непредвиденные отработки отказа, рассмотрите возможность ослабления мониторинга для группы доступности или экземпляра отказоустойчивого кластера. Но источник проблемы при этом может сохраниться: вы просто скроете внешние проявления и уменьшите вероятность сбоя. Чтобы устранить первопричину, потребуется провести дополнительный анализ. Для Windows Server 2012 или более поздней версии используйте следующие рекомендованные значения:
    • Время ожидания аренды. Используйте это уравнение, чтобы вычислить максимальное время ожидания аренды:
      Lease timeout < (2 * SameSubnetThreshold * SameSubnetDelay).
      Начните с 40 секунд. Если вы используете более расслабленные SameSubnetThreshold значения и SameSubnetDelay рекомендованные ранее, не превышаете 80 секунд для значения времени ожидания аренды.
    • Max failures in a specified period (Максимальное число сбоев за указанный период): для этого параметра можно задать значение 6.
    • Healthcheck timeout (Время ожидания проверки работоспособности): для этого параметра можно изначально установить значение 60000, а затем при необходимости скорректировать его.
  • Если для подключения к решению HADR используется имя виртуальной сети (VNN) и Azure Load Balancer, укажите MultiSubnetFailover = true в строке подключения, даже если кластер включает только одну подсеть.
    • Если клиент не поддерживает MultiSubnetFailover = True , может потребоваться задать RegisterAllProvidersIP = 0 и HostRecordTTL = 300 кэшировать учетные данные клиента на более короткие сроки. Но это может привести к увеличению числа запросов к DNS-серверу.
  • Если для подключения к решению HADR используется имя распределенной сети (DNN), учтите следующие требования:
    • Необходимо использовать драйвер клиента, поддерживающий MultiSubnetFailover = True. Этот параметр должен быть указан в строке подключения.
    • Используйте уникальный порт DNN в строке подключения при подключении к прослушивателю DNN для группы доступности.
  • Используйте строку подключения зеркального отображения базы данных для базовой группы доступности, чтобы избежать необходимости в подсистеме балансировки нагрузки или DNN.
  • Проверьте размер сектора VHD перед развертыванием решения для обеспечения высокой доступности, чтобы избежать операций ввода-вывода с неверным выравниванием. Дополнительные сведения см. в статье базы знаний 3009974.
  • Если для ядра СУБД SQL Server, прослушивателя группы доступности Always On или пробы работоспособности экземпляра отказоустойчивого кластера настроено использование порта в диапазоне от 49 152 до 65 536 (диапазон динамических портов по умолчанию для TCP/IP), добавьте исключение для каждого порта. Это предотвратит динамическое назначение того же порта другим системам. В следующем примере создается исключение для порта 59999:
    netsh int ipv4 add excludedportrange tcp startport=59999 numberofports=1 store=persistent

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

Безопасность

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

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

  • Используйте Центр безопасности Azure, чтобы оценить и предпринять меры для повышения безопасности среды данных. Такие возможности, как Azure Advanced Threat Protection (ATP), можно использовать в гибридных рабочих нагрузках для улучшения оценки безопасности и предоставления возможности реагировать на риски. Регистрация виртуальной машины SQL Server с помощью расширения агента SQL IaaS предоставляет оценки Центра безопасности Azure в ресурсе SQL виртуальной машины портала Azure.
  • Используйте Microsoft Defender для SQL, чтобы обнаруживать и устранять потенциальные уязвимостей баз данных и определять аномальные действия, которые могут свидетельствовать об угрозе для экземпляра SQL Server и уровня базы данных.
  • Оценка уязвимостей — это компонент Microsoft Defender для SQL, который может обнаруживать и помогать устранять потенциальные риски в среде SQL Server. Этот компонент предоставляет сведения о состоянии безопасности и предлагает практические действия для устранения проблем с безопасностью.
  • Используйте конфиденциальные виртуальные машины Azure для усиления защиты используемых данных и неактивных данных от доступа оператора узла. Конфиденциальные виртуальные машины Azure позволяют уверенно хранить конфиденциальные данные в облаке и соответствовать строгим требованиям.
  • Если вы используете SQL Server 2022, попробуйте использовать проверку подлинности Azure Active Directory для подключения к экземпляру SQL Server.
  • Помощник по Azure анализирует конфигурацию ресурсов и данные телеметрии их использования и рекомендует решения, которые помогут повысить эффективность затрат и производительность, а также уровень доступности и безопасности ресурсов Azure. Используйте помощник по Azure на уровне виртуальной машины, группы ресурсов или подписки, чтобы определить и применить рекомендации по оптимизации развертываний Azure.
  • Используйте Шифрование дисков Azure, если потребности в безопасности и соответствии предусматривают использование сквозного шифрования данных с помощью ключей шифрования, включая шифрование временного (локально подключенного) диска.
  • Управляемые диски шифруются при хранении по умолчанию с помощью Шифрования службы хранилища Azure, и ключи шифрования являются управляемыми Майкрософт ключами, которые хранятся в Azure.
  • См. сравнение параметров шифрования управляемых дисков.
  • Порты управления должны быть закрыты на виртуальных машинах, так как открытые порты удаленного управления подвергают виртуальную машину высокому риску атак через Интернет. Эти атаки используют метод подбора учетных данных для получения доступа к компьютеру от имени администратора.
  • Включите JIT-доступ для виртуальных машин Azure.
  • Используйте Бастион Azure через протокол удаленного рабочего стола (RDP).
  • Заблокируйте порты и разрешите только необходимый трафик приложений с помощью Брандмауэра Azure — управляемого брандмауэра в качестве службы (FaaS), который предоставляет или запрещает доступ к серверу на основе исходного IP-адреса.
  • Используйте группы безопасности сети (NSG) для фильтрации трафика между ресурсами Azure в виртуальной сети Azure.
  • Используйте группы безопасности приложений, чтобы объединять в группы серверы с аналогичными требованиями к фильтрации портов и аналогичными функциями, такими как веб-серверы и серверы баз данных.
  • Для веб-серверов и серверов приложений используйте защиту от распределенных атак типа "отказ в обслуживании" (DDoS) Azure. Атаки DDoS используются для перегрузки и исчерпания сетевых ресурсов, чтобы приложения работали медленнее или стали недоступными. Часто атаки DDoS нацелены на пользовательские интерфейсы. Защита от атак DDoS Azure очищает нежелательный сетевой трафик, прежде чем он повлияет на доступность службы.
  • Используйте расширения виртуальных машин для защиты от вредоносных программ, достижения требуемого состояния, обнаружения угроз, предотвращения и исправления для устранения угроз на уровне операционной системы, компьютера и сети:
  • Используйте политику Azure для создания бизнес-правил, которые можно применить к вашей среде. Политики Azure оценивают ресурсы Azure, сравнивая свойства этих ресурсов с правилами, определенными в формате JSON.
  • Служба Azure Blueprints позволяет облачным архитекторам и центральным ИТ-группам определять воспроизводимый набор ресурсов Azure, который реализует стандарты, шаблоны и требования организации и полностью соответствует им. Решение Azure Blueprints отличается от Политик Azure.

Дальнейшие действия

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

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

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