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

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server на виртуальной машине Azure

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

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

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

Контрольный список

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

  • Используйте размеры виртуальных машин минимум с 4 виртуальными ЦП, например Standard_M8-4ms, E4ds_v4 или DS12_v2 или выше.
  • Используйте размеры виртуальных машин, оптимизированные для операций в памяти, для повышения производительности при выполнении рабочих нагрузок SQL Server.
  • Серии DSv2 11-15, Edsv4, M и Mv2 обеспечивают оптимальное соотношение памяти к виртуальным ядрам, необходимое для рабочих нагрузок OLTP. Обе виртуальные машины серии M обеспечивают наиболее оптимальное соотношение памяти к виртуальным ядрам, необходимое для критически важных рабочих нагрузок, и идеально подходят для рабочих нагрузок хранилища данных.
  • Рассмотрим более высокое соотношение памяти к виртуальным ядрам для критически важных и рабочих нагрузок хранилища данных.
  • Следует использовать образы виртуальных машин Azure в Marketplace, так как их параметры SQL Server и хранилища настроены для оптимальной производительности SQL Server.
  • Собирайте характеристики производительности целевой рабочей нагрузки и используйте их для определения подходящего размера виртуальной машины для вашего бизнеса.
  • Используйте инструмент Помощник по миграции данных Рекомендация SKU для определения оптимального размера виртуальной машины для имеющейся рабочей нагрузки SQL Server.

Чтобы сравнить контрольный список размеров ВМ с другими, просмотрите исчерпывающий контрольный список рекомендаций по оптимизации производительности.

Обзор

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

Если вы создаете новую виртуальную машину SQL Server с новым приложением под облако, то виртуальную машину SQL Server можно будет легко масштабировать по мере изменения требований к данным и использованию. Запускайте среды разработки с использованием серии D, серии B или Av2 и развивайте среду с течением времени.

Используйте образы VM Marketplace для SQL Server с конфигурацией хранилища на портале. Это упростит создание пулов носителей, необходимых для получения нужного размера, количества операций ввода-вывода в секунду и пропускной способности, необходимой для требуемых рабочих нагрузок. Важно выбрать ВМ SQL Server, поддерживающие хранилище класса "Премиум" и кэширование хранилища класса "Премиум". Дополнительные сведения см. в статье о хранилище.

Рекомендуемый минимум для производственной среды OLTP — 4 виртуальных ядра, 32 ГБ памяти и соотношение памяти к виртуальным ядрам, равное 8. Для новых сред — начинайте с машин с 4 виртуальными ядрами и масштабируйте их до 8, 16, 32 виртуальных ядер или более при изменении требований к данным и вычислительным ресурсам. Для пропускной способности OLTP целевые SQL Server виртуальные машины с 5000 операций ввода-вывода в секунду на каждое виртуальное ядро.

SQL Server в хранилище данных и критически важных средах часто требуется масштабировать сверх соотношения памяти к виртуальным ядрам, равного 8. Для средних сред можно выбрать соотношение памяти к виртуальным ядрам 16, а для больших сред хранения данных — 32.

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

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

Оптимизированная для операций в памяти

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

Серии M, Mv2 и Mdsv2

Серия M предлагает количество виртуальных ядер и объем памяти для самых больших рабочих нагрузок SQL Server.

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

Например, Standard_M64ms имеет соотношение памяти к виртуальным ядрам, равное 28.

Mdsv2 Medium серии памяти — это новая серия M, которая в настоящее время доступна в предварительной версии и предлагает ряд виртуальных машин Azure серии M с объемом памяти среднего уровня. Эти компьютеры хорошо подходят для рабочих нагрузок SQL Server с поддержкой соотношения памяти к виртуальным ядрам от 10 до 30.

К некоторым функциям серии M и Mv2, привлекательным с точки зрения производительности SQL Server, относятся хранилище класса "Премиум" и Поддержка кэширования хранилища уровня "Премиум", поддержка дисков цен. категории "Ультра" и ускорение записи.

Серия Edsv4

Серия Edsv4 предназначена для приложений, интенсивно использующих память. На этих виртуальных машинах имеется большая емкость SSD локального хранилища, а для локальных дисковых операций — до 504 ГиБ ОЗУ. Большинство этих виртуальных машин имеет практически одинаковое соотношение 8 ГиБ памяти на каждое виртуальное ядро, что идеально подходит для стандартных рабочих нагрузок SQL Server.

В этой группе есть новая виртуальная машина с Standard_E80ids_v4, предлагающая 80 виртуальных ядер, 504 ГБ памяти и соотношение памяти к виртуальным ядрам, равное 6. Эта виртуальная машина примечательна тем, что она изолирована, то есть она гарантированно является единственной виртуальной машиной, работающей на узле, и, следовательно, изолирована от других клиентских рабочих нагрузок. Ее соотношение памяти к виртуальным ядрам ниже рекомендуемого для SQL Server, поэтому этот вариант следует использовать, только если требуется изоляция.

Виртуальные машины серии Edsv4 поддерживают хранилище класса "Премиум" и кэширование хранилища класса "Премиум".

Серия DSv2 11–15

Серия DSv2 11–15 имеет такие же конфигурации памяти и диска, как и серия D. Эта серия имеет одинаковое соотношение памяти и ЦП 7 на всех виртуальных машинах. Это самая маленькая из серий, оптимизированных для операций в памяти, хороший вариант с низкой стоимостью для рабочих нагрузок SQL Server начального уровня.

Серия DSv2 11-15 поддерживает хранилище класса "Премиум" и кэширование хранилища класса"Премиум", что настоятельно рекомендуется для оптимальной производительности.

Общего назначения

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

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

Поскольку начальная рекомендация для производственных рабочих нагрузок — это соотношение памяти к виртуальным ядрам, равное 8, то минимальная рекомендуемая конфигурация для виртуальной машины общего назначения, в которой выполняется SQL Server, составляет 4 виртуальных ЦП и 32 ГБ памяти.

Серия Ddsv4

Серия Ddsv4 предлагает достаточное сочетание виртуальных ЦП, памяти и временного диска, но с меньшим соотношением памяти к виртуальным ядрам.

Виртуальные машины Ddsv4 имеют меньшую задержку и более скоростное локальное хранилище.

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

Поэтому рекомендуется использовать D8ds_v4 в качестве начальной виртуальной машины в этой серии c 8 виртуальными ядрами и 32 ГБ памяти. Самая мощная машина — это D64ds_v4 с 64 виртуальными ядрами и 256 ГБ памяти.

Виртуальные машины серии Ddsv4 поддерживают хранилище класса "Премиум"и кэширование хранилища класса "Премиум".

Примечание

Серия Ddsv4 не имеет соотношения памяти к виртуальным ядрам, равное 8, что рекомендуется для рабочих нагрузок SQL Server. Таким образом, следует рассмотреть возможность использования этих виртуальных машин только для небольших рабочих нагрузок приложений и разработки.

Серия B

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

Большинство размеров виртуальных машин серии B с увеличивающейся производительностью имеют соотношение памяти к виртуальным ядрам, равное 4. Самой мощной из этих машин является Standard_B20ms с 20 виртуальными ядрами и 80 ГБ памяти.

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

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

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

Эта серия поддерживает хранилище класса "Премиум", но не поддерживает кэширование хранилища класса "Премиум".

Примечание

Машины серии B с увеличивающейся производительностью не имеют соотношения памяти к виртуальным ядрам, равного 8, рекомендуемого для рабочих нагрузок SQL Server. Таким образом, следует рассмотреть возможность использования этих виртуальных машин только для небольших рабочих нагрузок — серверов приложений, веб-серверов и для разработки.

Серия Av2

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

Только Standard_A2m_v2 (2 виртуальных ядра и 16 ГБ памяти), Standard_A4m_v2 (4 виртуальных ядра и 32 ГБ памяти), а также Standard_A8m_v2 (8 виртуальных ядер и 64 ГБ памяти) имеют оптимальное соотношение памяти к виртуальным ядрам среди трех основных виртуальных машин.

Эти виртуальные машины являются хорошим вариантом для небольших систем разработки и тестирования SQL Server.

Standard_A8m_v2 с 8 виртуальными ядрами также может быть хорошим вариантом для небольших серверов приложений и веб-серверов.

Примечание

Серия Av2 не поддерживает хранилище класса "Премиум" и поэтому не рекомендуется для производственных рабочих нагрузок SQL Server даже с виртуальными машинами, имеющими соотношение памяти к виртуальным ядрам, равным 8.

Оптимизированная для операций в хранилище

Размеры виртуальных машин, оптимизированных для операций в хранилище, предназначены для конкретных вариантов использования. Эти виртуальные машины специально разработаны с оптимизированной пропускной способностью диска и операциями ввода-вывода.

Серия Lsv2

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

Эти виртуальные машины являются надежными вариантами для работы с большими данными, хранилищ данных, отчетов и рабочих нагрузок ETL. Высокая пропускная способность и операции ввода-вывода в локальном хранилище NVMe дают хороший вариант для обработки файлов, которые будут загружаться в базу данных, и других сценариев, где данные могут воссоздаваться из исходной системы или других репозиториев, например хранилища BLOB-объектов Azure или Azure Data Lake. Виртуальные машины серии Lsv2 могут ускорять производительность диска и поддерживать пиковую скорость до 30 минут подряд.

Это виртуальные машины размером с количеством виртуальных ЦП от 8 до 80 и 8 ГиБ памяти на один виртуальный ЦП, а на каждые 8 ЦП приходится 1,92 ТБ места на твердотельном накопителе NVMe. Это означает, что у самой крупной виртуальной машины этой серии L80s_v2 80 виртуальных ЦП и 640 БиБ памяти, а также 10 хранилищ NVMe по 1,92 ТБ каждое. У всех этих виртуальных машин одинаковое соотношение памяти к виртуальным ядрам, равное 8.

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

Серии Lsv2 и Ls поддерживают хранилище класса "Премиум", но не кэширование хранилища класса "Премиум". Создание локального кэша для увеличения количества операций ввода-вывода не поддерживается.

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

Хранение файлов данных во временном хранилище NVMe может привести к потере данных при освобождении виртуальной машины.

Ограниченное количество виртуальных ядер

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

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

Этим средам OLTP требуется больший объем памяти, быстрое хранилище и пропускная способность ввода-вывода, необходимая для оптимального выполнения.

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

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

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

В названии новых размеров виртуальных машин содержится суффикс, указывающий количество активных виртуальных ЦП, что позволяет упростить процесс их определения.

Например, для M64-32ms требуется лицензирование 32 только виртуальных ядер SQL Server с памятью, вводом-выводом и пропускной способностью M64ms, а для M64-16ms — лицензирование только 16 виртуальных ядер. Хотя M64-16ms имеет вчетверо более низкую стоимость лицензирования SQL Server по сравнению с M64ms, стоимость самой виртуальной машины будет одинаковой.

Примечание

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

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

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

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

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