Что может увеличиваться задержка в 3-4 раза для SQL FCI базы данных?

У нас есть базовые группы доступности (BAG) SQL Server, настроенные для запуска базы данных SQL, работающей на локальном SSD-диске Intel. Меня попросили переместить базу данных в экземпляр отказоустойчивого кластера SQL Server (FCI), чтобы повысить производительность SQL Server: запустить базу данных на виртуальном диске высокой доступности, работающем на программно-определяемом хранилище. По моему опыту, гиперконвергентный VSAN должен удваивать операции чтения, поэтому задержка ввода-вывода SQL (для чтения из базы данных) должна уменьшиться вдвое.

Таким образом, были протестированы два сценария: SQL BAG и SQL FCI. Для этих двух случаев максимальный объем оперативной памяти сервера 512 ГБ был установлен на SQL Server, чтобы исключить кэширование и выполнять операции справедливого чтения из таблицы базы данных.

SQL Management Studio и SQLQueryStress использовались для целей тестирования. Оператор SQL: SELECT TOP (500000) ... FROM [SQL]. [Dbo]. [Table] для чтения первых 500 000 строк.

Результаты запроса SQL BAG следующие:

SQL Management Studio: время запроса = 15 секунд

SQLQueryStress:

Количество потоков = 1: время запроса = 2 секунды
Количество потоков = 2: время запроса = 2 секунды
Количество потоков = 4: время запроса = 2 секунды
Количество потоков = 8: время запроса = 2 секунды
Количество потоков = 10: время запроса = 3 секунды
Количество потоков = 12:Время запроса = 4 секунды

Сценарий SQL FCI был построен на отказоустойчивом кластере Windows из двух идентичных аппаратных узлов под управлением Windows Server 2016. Хранилище было настроено с использованием программно-определяемого хранилища (гиперконвергентного VSAN) на SSD-дисках Intel. Таким образом, виртуальный диск был представлен отказоустойчивому кластеру как кластерный диск. Для тестирования кластерного диска я использовал diskspd

Результаты diskspd следующие:

Случайное чтение 4k - 76K IOPS (SSD), 153K IOPS (гиперконвергентный VSAN - Cluster Disk)
Случайное чтение 8k - 45K IOPS (SSD), 89K IOPS (гиперконвергентный VSAN - кластерный диск)

Как я и ожидал, гиперконвергентная VSAN удвоила производительность хранилища. Далее SQL FCI был настроен для хранения файлов базы данных на этом кластерном диске. Еще одна копия базы данных была загружена на сервер, и были выполнены те же тесты.

Результаты запроса SQL FCI следующие:

SQL Management Studio: время запроса = 15 сек.

SQLQueryStress:

Количество потоков = 1: время запроса = 9 секунд
Количество потоков = 2: время запроса = 8 секунд
Количество потоков = 4: время запроса = 9 секунд
Количество потоков = 8: время запроса = 8 секунд
Количество потоков = 10: время запроса = 10 секунд
Количество потоков = 12: время запроса = 12 с.

Вопросы следующие:

  1. Почему задержка одинакова для SQL BAG и SQL FCI, которые тестировались с помощью Management Studio?

  2. Что может увеличить задержку в 3-4 раза для SQL FCI база данных?

4
задан 2 January 2019 в 12:18
1 ответ

FCI - это история, придерживайтесь групп доступности AlwasysOn (AG) для своих новых развертываний. Это намного быстрее (поскольку SQL Server знает, что реплицировать), и, по крайней мере, базовые группы доступности включены в стандартную версию SQL Server.

https://blogs.technet.microsoft.com/msftpietervanhove/2017/03/14/ top-5-questions-about-basic-availability-groups /

3
ответ дан 3 December 2019 в 03:39

Теги

Похожие вопросы