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


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

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

В этой статье представлены контрольные списки как часть серии лучших практик и рекомендаций по оптимизации производительности SQL Server на виртуальных машинах Azure (Azure VMs). Используйте это руководство для улучшения конфигурации виртуальной машины, настройки хранилища, состояния безопасности и устранения распространенных проблем с производительностью.

Контрольные списки в этой статье содержат краткий обзор более подробных сведений, приведенных в следующих статьях этой серии:

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

Для обзора новых функций по оптимизации производительности виртуальных машин SQL Server и автоматизации управления рекомендуем посмотреть следующие видео из серии Data Exposed.

Обзор

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

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

Next steps: Начните с первых рекомендаций по размеру VM, затем перейдите через Storage, Security и SQL Server функции для полного подхода к оптимизации.

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

Установка SQL Server вручную на виртуальную машину Azure

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

  • Убедитесь, что у вас есть ключ продукта, готовый к установке.
  • Избегайте неподдерживаемых конфигураций, например:
    • Более 64 виртуальных процессоров на узел NUMA.
    • Хранилище с размером сектора 8 КБ.
    • Azure Virtual Machine Scale Sets (масштабируемые наборы виртуальных машин Azure)
  • Если они еще не существуют, создайте папки для SQL Server установки и файлов данных перед запуском установочного носителя.
  • Скопируйте установочный носитель на локальный диск вместо установки непосредственно из подключенного ISO.
  • После установки зарегистрируйте виртуальную машину SQL Server с помощью расширения агента IaaS для SQL Server SQL Server IaaS Agent Extension для автоматизации задач управления.
  • По возможности разместите tempdb базу данных на локальном эфемерном хранилище SSD .

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

Предупреждение

Размещение tempdb на локальном временном диске для образов виртуальных машин Azure с неинициализированными временными дисками, такими как FXmdsv2, не поддерживается. Эта проблема затрагивает только Azure Virtual Machines с новым интерфейсом NVMe, который также имеет локальное эфемерное хранилище. Эти развертывания через портал Azure могут завершиться ошибкой, и SQL Server может не запуститься. Используйте другую серию виртуальных машин или поместите tempdb в неэфемерное хранилище как при развертывании образа SQL Server на портале Azure, так и при установке SQL Server вручную. Чтобы узнать больше о проблеме и увидеть список затронутых виртуальных машин, ознакомьтесь с материалами отказов развертывания VM и SQL Server.

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

  • Перед выбором размера виртуальной машины настройте хранилище. Соберите базовые показатели из исходной среды в условиях максимального стресса, а затем настройте хранилище на основе потребностей IOPS и пропускной способности рабочей нагрузки с буфером 20% для будущего роста.
  • Определите характеристики производительности рабочей нагрузки (OLTP и OLAP, размер рабочей нагрузки), чтобы определить соответствующий размер виртуальной машины для вашего бизнеса.
  • Если вы выполняете миграцию в Azure, оцените готовность к миграции, чтобы выбрать оптимальный размер виртуальной машины для вашей существующей рабочей нагрузки SQL Server, а затем выполните миграцию с помощью Azure Database Migration Service.
  • Используйте образы Azure Marketplace для развертывания виртуальных машин SQL Server, так как параметры SQL Server и параметры хранилища настроены для оптимальной производительности.
  • Используйте размеры виртуальных машин с 4 или более виртуальными ядрами.
  • Используйте оптимизированные для памяти размеры виртуальных машин для оптимальной производительности SQL Server рабочих нагрузок.
    • Серия Mbdsv3 обеспечивает лучшую общую производительность для критически важных рабочих нагрузок OLTP и хранилища данных.
    • Серия Ebdsv5 обеспечивает наилучшее соотношение цена-производительность для большинства рабочих нагрузок SQL Server в производственных средах.
    • Серии Easv7 и Msv3/Mdsv3 оптимизированы для рабочих нагрузок с большим объемом памяти.
    • Семейство M предлагает самые высокие конфигурации памяти в Azure для крупнейших рабочих нагрузок.
  • Запустите среды разработки с начального уровня серии D или серии B и со временем расширяйте свою среду.
  • Проверьте поддержку ВМ , чтобы избежать неподдерживаемых конфигураций.
  • Используйте настройку виртуальных ядер VM, чтобы соответствующим образом выделить виртуальные ЦП для рабочей нагрузки и виртуальной машины и сократить затраты на лицензирование SQL Server, а также отключить параметры SMT/hyperthreading для оптимальной SQL Server производительности.

Хранилище

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

  • Наблюдайте за приложением и определите требования к пропускной способности и задержке хранилища для данных, журналов и файлов SQL Server перед выбором типа диска.
  • При наличии настройте файлы данных и журналов на локальном томе SSD D: при развертывании новой виртуальной машины или после установки SQL Server вручную . Расширение агента SQL IaaS управляет папкой и разрешениями, необходимыми при повторном развертывании.
  • Чтобы оптимизировать производительность хранилища, запланируйте максимально возможное количество некешированных операций ввода-вывода в секунду и используйте кеширование данных в качестве функции производительности при чтении данных, избегая при этом установки ограничения на виртуальные машины и диски.
    • Установите кэширование на узле в режим только для чтения для дисков файлов данных.
    • Настройте кэширование узла на нет для дисков файлов журналов.
      • Не включите кэширование чтения и записи на дисках, содержащих SQL Server файлы данных или журналов.
      • Всегда остановите службу SQL Server перед изменением параметров кэша диска.
  • При использовании серии Ebdsv5 или Ebsv5 SQL Server виртуальных машин используйте Premium SSD версии 2 для оптимальной ценовой производительности. Вы можете развернуть виртуальную машину SQL Server с SSD уровня "Премиум" версии 2 с помощью портала Azure (в настоящее время в предварительной версии).
  • Если для рабочей нагрузки требуется более 160 000 IOPS, используйте Premium SSD v2 или Azure Ultra Диски.
  • Поместите данные, журналы и tempdb файлы на отдельные диски.
    • Для диска данных используйте диски класса Premium P30 и P40 или меньше , чтобы обеспечить поддержку кэша. При использовании виртуальных машин серии Ebdsv5 используйте Премиальный SSD версии 2, который обеспечивает лучшее соотношение цены и производительности для рабочих нагрузок, требующих высокой производительности и пропускной способности ввода-вывода.
    • Для планирования диска для ведения журнала с точки зрения емкости и сравнения производительности и стоимости при оценке дисков SSD уровня "Премиум" версии 2 или SSD уровня "Премиум" P30 — P80
      • Если требуется субмиллисекундная задержка в хранилище, используйте либо Premium SSD v2, либо Azure Ultra Disks для журнала транзакций.
      • Для развертываний виртуальных машин серии M рассмотрите возможность использования ускорителя записи вместо использования дисков Azure Ultra.
    • Поместите tempdb на временный диск (временный диск является эфемерным и по умолчанию используется для D:\) для большинства SQL Server нагрузок, которые не входят в экземпляр отказоустойчивого кластера (FCI), после выбора оптимального размера виртуальной машины.
      • Если ёмкости локального диска недостаточно для tempdb, рассмотрите возможность увеличения размера виртуальной машины. Дополнительные сведения см. в политиках кэширования файлов данных.
    • Для экземпляров отказоустойчивого кластера (FCI) разместите tempdb на общем хранилище.
      • Если рабочая нагрузка FCI сильно зависит от tempdb производительности диска, то разместите в качестве расширенной конфигурации tempdb на локальном эфемерном SSD-диске, который не является частью хранилища FCI (по умолчанию). Эта конфигурация нуждается в пользовательском мониторинге и действии, чтобы локальный временный диск SSD (дефолт D:\) был доступен всё время, поскольку сбои этого диска не предполагают действий со стороны FCI.
  • Создайте полосы из нескольких дисков данных Azure с помощью Storage Spaces для увеличения пропускной способности ввода-вывода до пределов операций ввода-вывода и пропускной способности, предусмотренных для целевой виртуальной машины.
  • При переносе нескольких разных рабочих нагрузок в облако Azure Elastic SAN может быть экономичным решением для консолидированного хранилища. Однако при использовании Azure Elastic SAN для достижения требуемых IOPS/пропускной способности для рабочих нагрузок SQL Server часто требуется дополнительный объем емкости. Хотя обычно не подходит для отдельных SQL Server рабочих нагрузок, вы можете достичь экономичного решения при сочетании рабочих нагрузок с низкой производительностью с SQL Server.
  • Для рабочих нагрузок разработки и тестирования, а также для долгосрочного архивирования резервных копий рассмотрите возможность использования стандартного хранилища. Не рекомендуется использовать hdD/SSD уровня "Стандартный" для рабочих нагрузок.
  • Кредитная система увеличения дисковой производительности (P1–P20) должна использоваться только для небольших нагрузок разработки и тестирования, а также для систем внутри отделов.
  • Отформатируйте диск данных с размером единиц размещения 64 КБ для всех файлов данных на этом диске, за исключением временного диска D:\ (размер которого по умолчанию составляет 4 КБ). Виртуальные машины SQL Server, развернутые через Azure Marketplace, поставляются с дисками данных, отформатированными с размером единицы выделения и переплетением для пула хранения, установленным на 64 КБ.
  • Настройте учетную запись хранения в том же регионе, что и виртуальная машина SQL Server.
  • Отключите геоизбыточное хранилище Azure (георепликация) и используйте LRS (локально избыточное хранилище) в хранилище Azure.
  • Включите оценку рекомендаций SQL для выявления возможных проблем с производительностью и оценки того, что виртуальная машина SQL Server настроена для выполнения рекомендаций.
  • Просмотрите и отслеживайте ограничения дисков и виртуальных машин с помощью метрик использования операций ввода-вывода в хранилище.
  • Исключить файлы SQL Server из сканирования антивирусным программным обеспечением, включая файлы данных, журналы и файлы резервных копий.
  • Измените размер пула носителей соответствующим образом.

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

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

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

  • Используйте Microsoft Defender for Cloud для оценки и принятия мер по повышению уровня безопасности среды данных. Такие возможности, как Azure Advanced Threat Protection (ATP) можно использовать в гибридных рабочих нагрузках для улучшения оценки безопасности и предоставления возможности реагирования на риски. Регистрация виртуальной машины SQL Server с помощью расширения агента SQL IaaS отображает оценки Microsoft Defender for Cloud в ресурсе виртуальной машины SQL на портале Azure.
  • Используйте Microsoft Defender для SQL для обнаружения и устранения потенциальных уязвимостей базы данных, а также обнаружения аномальных действий, которые могут указывать на угрозу для экземпляра SQL Server и уровня базы данных.
  • Оценка уязвимости является частью Microsoft Defender для SQL Server, которая может обнаруживать и устранять потенциальные риски в среде SQL Server. Этот компонент предоставляет сведения о состоянии безопасности и предлагает практические действия для устранения проблем с безопасностью.
  • Используйте Azure конфиденциальные виртуальные машины для обеспечения защиты используемых данных и неактивных данных от доступа оператора узла. Azure конфиденциальные виртуальные машины позволяют уверенно хранить конфиденциальные данные в облаке и соответствовать строгим требованиям соответствия.
  • Если вы используете SQL Server 2022, попробуйте использовать проверку подлинности Microsoft Entra для подключения к экземпляру SQL Server.
  • Azure Advisor анализирует данные телеметрии конфигурации ресурсов и использования, а затем рекомендует решения, которые помогут повысить эффективность затрат, производительность, высокий уровень доступности и безопасность ресурсов Azure. Используйте Azure Advisor на уровне виртуальной машины, группы ресурсов или подписки, чтобы определить и применить рекомендации по оптимизации Azure развертываний.
  • Используйте Azure Disk Encryption если требуется соответствие требованиям и безопасности, необходимо шифровать сквозные данные с помощью ключей шифрования, включая шифрование временных (локально подключенных временных) дисков.
  • Управляемые диски по умолчанию шифруются с помощью шифрования службы хранения Azure, где ключи шифрования — это ключи, управляемые корпорацией Майкрософт и хранящиеся в Azure.
  • Для сравнения параметров шифрования управляемых дисков просмотрите диаграмму сравнения шифрования управляемых дисков.
  • Порты управления должны быть закрыты на виртуальных машинах, так как открытые порты удаленного управления подвергают виртуальную машину высокому риску атак через Интернет. Эти атаки используют метод грубой силы для подбора учетных данных, чтобы получить административный доступ к машине.
  • Включите режим Just-in-time для виртуальных машин Azure.
  • Используйте Azure Bastion по протоколу Remote Desktop (RDP).
  • Блокируйте порты и разрешайте только необходимый трафик приложения с помощью Azure Firewall который является управляемым брандмауэром как услуга (FaaS), который предоставляет или запрещает доступ к серверу на основе исходного IP-адреса.
  • Используйте группы безопасности сети (NSG) для фильтрации сетевого трафика к ресурсам и от ресурсов в виртуальных сетях Azure.
  • Используйте группы безопасности приложений для группирования серверов вместе с аналогичными требованиями к фильтрации портов с аналогичными функциями, такими как веб-серверы и серверы баз данных.
  • Для веб-серверов и серверов приложений используйте Azure защиту от распределенных атак типа отказ обслуживания (DDoS). Атаки DDoS используются для перегрузки и исчерпания сетевых ресурсов, чтобы приложения работали медленнее или стали недоступными. Во многих случаях DDoS атаки нацелены на пользовательские интерфейсы. Azure защита от атак DDoS очищает нежелательный сетевой трафик, прежде чем он влияет на доступность службы.
  • Используйте расширения виртуальной машины, чтобы помочь устранить вредоносные программы, требуемое состояние, обнаружение угроз, предотвращение и исправление угроз на уровне операционной системы, компьютера и сети:
    • Расширение "Гостевая конфигурация" выполняет операции аудита и настройки на виртуальных машинах.
    • расширение виртуальной машины агента Network Watcher для Windows и Linux контролирует производительность сети, диагностические и аналитические службы, позволяющие осуществлять мониторинг сетей Azure.
    • Расширение антивредоносного ПОMicrosoft для Windows для выявления и удаления вирусов, шпионских программ и других вредоносных программ с настраиваемыми оповещениями.
    • Оцените сторонние расширения, такие как Symantec Endpoint Protection для виртуальной машины Windows (/azure/virtual-machines/extensions/symantec).
  • Используйте Azure Policy для создания бизнес-правил, которые можно применить к вашей среде. Политики Azure оценивают ресурсы Azure, сравнивая их свойства с правилами, определенными в формате JSON.
  • Azure Blueprints позволяет архитекторам облака и центральным информационным группам определять повторяемый набор ресурсов Azure, реализующих и соблюдающих стандарты, шаблоны и требования организации. Azure Blueprints отличаются от политик Azure.
  • Используйте Windows Server 2019 или Windows Server 2022, чтобы обеспечить соответствие стандартам FIPS в SQL Server на виртуальных машинах Azure.
  • Обработайте восстановление резервных копий как операцию с высоким риском и никогда не восстанавливайте резервную копию из ненадежного источника.

функции SQL Server

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

функции Azure

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

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

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

Функции высокой доступности и аварийного восстановления (HADR), такие как Always On availability group и экземпляр отказоустойчивого кластера, используют базовую технологию отказоустойчивого кластера 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.
  • При использовании имени виртуальной сети (VNN) и Azure Load Balancer для подключения к решению HADR укажите MultiSubnetFailover = true в connection string, даже если кластер охватывает только одну подсеть.
    • Если клиент не поддерживает MultiSubnetFailover = True, возможно, вам потребуется настроить RegisterAllProvidersIP = 0 и HostRecordTTL = 300 для кэширования учетных данных клиента на более короткое время. Но это может привести к увеличению числа запросов к DNS-серверу.
  • Чтобы подключиться к решению HADR с использованием распределенного сетевого имени (DNN), рассмотрим следующее:
    • Необходимо использовать драйвер клиента, поддерживающий MultiSubnetFailover = True, и этот параметр должен находиться в connection string.
    • Используйте уникальный порт 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

Устранение проблем с производительностью

При возникновении проблем с производительностью SQL Server используйте эти диагностические ресурсы для выявления и устранения конкретных проблем:

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

Рекомендуемое средство: Recommended tool:Enable SQL Assessment for SQL Server на виртуальных машинах Azure для автоматической оценки вашей конфигурации в соответствии с этими лучшими практиками.

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