Оптимизация производительности с помощью Microsoft SQL Server 2019 на RHEL 8

 При выборе операционной системы для запуска рабочих нагрузок баз данных, таких как Microsoft SQL Server, Red Hat Enterprise Linux (RHEL) предлагает несколько уникальных преимуществ. Но почему это так?

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

Red Hat и Microsoft сотрудничают уже более четырех лет, чтобы предоставить совместимые высокопроизводительные решения для обработки данных корпоративным клиентам. Теперь, с SQL Server 2019 на RHEL 8, вы можете получить улучшенную производительность для ваших наиболее важных транзакционных систем и хранилищ данных, а также интегрированные бизнес-аналитики и передовые аналитические решения для создания интеллектуальных приложений. Это может обеспечить прочную основу для надежной стратегии модернизации данных недвижимости, которая может максимизировать вашу отдачу от инвестиций.

Одним из примеров того, как мы работаем вверх по течению с Microsoft, являются изменения, внесенные в файловую систему XFS, чтобы лучше оптимизировать работу с корпоративными устройствами хранения данных с принудительным доступом (FUA).

В более ранних версиях RHEL (до RHEL 8) SQL Server полагался на возможности подсистемы ввода-вывода FUA для обеспечения долговременной записи данных. Такое поведение принудительной промывки повлияло на кэширование ввода-вывода, опережение чтения и другие важные функции подсистемы хранения.

Начиная с SQL Server 2019 на RHEL 8, вы можете включить SQL Server traceflag 3979, чтобы принудительная очистка больше не требовалась для файловой системы XFS, и таким образом производительность записи значительно улучшается. Фактически, тестирование Microsoft показало, что для рабочей нагрузки SQL Server с интенсивной записью трафик ввода-вывода может быть уменьшен почти на 50%, и что сэкономленное время и ресурсы теперь можно потратить на другие критически важные задачи обработки.

В дополнение к усовершенствованию XFS, описанному выше, SQL Server, работающий на RHEL 8, получает ряд других улучшений производительности, включая:

  1. Обновление настроенного MSSQL профиля, который оптимизировал настройку для рабочих нагрузок поддержки принятия решений. Это делается в дополнение к настройке, выполняемой внутри SQL Server для повышения производительности рабочих нагрузок TPCC, TPCH и TPCE. Дополнительные сведения об этом профиле и руководстве по производительности SQL Server см. Также в онлайн-руководстве Microsoft SQL Server Performance best practices and configuration guidelines for SQL Server on Linux.

  2. Новые усовершенствования стека TCP / IP, которые повышают производительность и обеспечивают контроль пропускной способности узких мест и времени обхода (BBR) перегрузки.

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

  4. Поддержка постоянной памяти (pMEM) наряду с поддержкой DAX от Microsoft в SQL Server 2019 для Linux позволяет SQL Server обходить файловую систему и ускорять доступ к данным и файлам журналов, хранящимся на томе pMEM в формате DAX. Чтобы настроить поддержку постоянной памяти, обратитесь к настройкам, представленным здесь.

Тестирование SQL Server 2019 на RHEL 8

Учитывая общую доступность SQL Server 2019 для RHEL 8, наше недавнее неофициальное тестирование Microsoft SQL Server 2019 в лаборатории производительности Red Hat указывает на то, что эта работа приносит дивиденды производительности. В мире реляционных баз данных эталоны TPC обычно являются золотым стандартом, когда речь заходит об измерениях производительности.

Мы хотели поделиться с клиентами повышением производительности, которое вы можете получить, запустив RHEL 8, и тем, как он сравнивается с RHEL 7. Для нашего эксперимента мы использовали инструмент с открытым исходным кодом HammerDB для увеличения рабочей нагрузки OLTP.

Эти тесты проводились на процессоре Intel Xeon CPU E5-2690 v2 @ 3.00 GHz class system с 64 ядрами и 128 ГБ оперативной памяти. В качестве накопителя для теста использовался диск Intel PCI-NVMe. Ядра, используемые для тестирования, показаны в легенде графика.

Наше тестирование показало улучшение пропускной способности до 19% на RHEL 8, благодаря изменениям, направленным на повышение производительности операционной системы, и тесному инженерному сотрудничеству между Red Hat и Microsoft. Поскольку результаты не были проверены, номера транзакций / минут (которые находятся в нескольких миллионах транзакций / минут) не публикуются на графике.

Мы повторили тест в среде виртуальной машины и заметили аналогичные улучшения. Эти тесты были выполнены с использованием Microsoft SQL Server 2019 в виртуальной машине RHEL 8, работающей на платформе Red Hat Virtualization platform версии 4.3, по сравнению с виртуальной машиной RHEL 7.

ти тесты были выполнены на Intel Xeon CPU E5-2690 v2 @ 3.00 GHz class System с 64 ядрами и 128 ГБ памяти. В качестве накопителя для теста использовался диск Intel PCI-NVMe. Ядра, используемые в виртуальной машине, находятся в легенде графиков.

Тестирование SQL Server 2019 на RHEL 8 в Cisco и HPE

Сотрудничество между Microsoft и Red Hat включает в себя ряд основных поставщиков оборудования для обеспечения надежной экосистемы, обеспечивающей стабильность, масштабируемость и производительность. С этой целью SQL Server 2019 на RHEL 8 был подвергнут тестированию в Cisco и HPE с использованием TPC-H benchmark on соответственно  набор данных 30 ТБ для Cisco и набор данных 3 ТБ для HPE, и результаты были опубликованы. TPC-H измеряет способность системы анализировать большие объемы данных, обрабатывать запросы с высокой степенью сложности и возвращать ответы на критические бизнес-вопросы.

SQL Server 2019 на RHEL 8 с использованием аппаратного обеспечения Cisco, состоящего из 4-сокетных процессоров Intel Xeon Platinum 8280M 2,70 ГГц и 112 ядер, смог обеспечить производительность 1 278,277 TPC-H Composite Query-per-Hour по цене 0,94 $/QphH. Более подробную информацию можно найти здесь.

Аналогично, SQL Server 2019 на RHEL 8 с использованием сервера HPE DL325 Gen10 Plus, состоящего из одного процессорного сокета AMD EPYC 7742, впервые достиг с одним процессорным сокетом более 1 миллиона QphH. Более подробную информацию можно найти здесь.

Вывод

Независимо от того, работаете ли вы на голом металле, в виртуальной машине , в контейнерной среде или в облаке - Microsoft SQL Server на Red Hat Enterprise Linux вместе предлагает масштабируемую основу, которая обеспечивает согласованный опыт применения для растущих операционных и аналитических вариантов использования.

Этот пост демонстрирует мощь SQL Server 2019 на RHEL 8 с точки зрения производительности, но нет лучшего способа испытать его, чем попробовать его самостоятельно.