4 votes

Qu'est-ce qui peut augmenter la latence de 3-4 fois pour SQL FCI la base de données ?

Nous avons des groupes de disponibilité de base (BAG) SQL Server configurés pour exécuter une base de données SQL sur un disque SSD Intel local. On m'a demandé de déplacer une base de données vers SQL Server Failover Cluster Instance (FCI) pour augmenter les performances de SQL Server : exécuter la base de données sur un disque virtuel HA alimenté par un stockage défini par logiciel. D'après mon expérience, le système VSAN hyperconvergé devrait doubler les opérations de lecture et, par conséquent, la latence des entrées-sorties SQL (pour les lectures de la base de données) devrait diminuer deux fois.

Deux scénarios ont donc été évalués : SQL BAG et SQL FCI. Pour ces deux cas, la mémoire maximale du serveur de 512 Go de RAM a été définie pour SQL Server afin d'exclure la mise en cache et d'effectuer des opérations de lecture équitables à partir de la table de la base de données.

Management Studio SQL et SQLQueryStress ont été utilisés à des fins de test. L'instruction SQL est SELECT TOP (500000) ... FROM [SQL].[dbo].[table] pour lire les 500K premières lignes.

Les résultats de la requête SQL BAG sont les suivants :

Management Studio SQL : Temps de requête = 15sec

SQLQueryStress :

Nombre de threads = 1 : Temps de requête = 2sec
Nombre de threads = 2 : Temps de requête = 2sec
Nombre de threads = 4 : Temps de requête = 2sec
Nombre de threads = 8 : Temps de requête = 2sec
Nombre de threads = 10 : Temps de requête = 3sec
Nombre de threads = 12 : Temps de requête = 4sec

Le scénario SQL FCI a été construit sur un cluster Windows Failover composé de deux nœuds matériels identiques exécutant Windows Server 2016. Le stockage a été configuré à l'aide d'un stockage défini par logiciel (hyperconvergé VSAN) sur des disques SSD Intel. Ainsi, un disque virtuel a été présenté à Failover Cluster en tant que disque de cluster. Pour tester le disque de cluster, j'ai utilisé diskspd.

Les résultats de diskspd sont les suivants :

4k lecture aléatoire - 76K IOPS (SSD), 153K IOPS (hyperconvergé VSAN - Cluster Disk)
8k lecture aléatoire - 45K IOPS (SSD), 89K IOPS (hyperconvergé VSAN - Cluster Disk)

Comme je m'y attendais, VSAN hyperconvergé a doublé les performances de stockage. Pour la suite, SQL FCI a été configuré pour stocker les fichiers de la base de données sur ce disque de cluster. Une autre copie de la base de données a été téléchargée sur le serveur et les mêmes tests ont été effectués.

Les résultats de la requête SQL FCI sont les suivants :

Management Studio SQL : Temps de requête = 15sec

SQLQueryStress :

Nombre de threads = 1 : Temps de requête = 9sec
Nombre de threads = 2 : Temps de requête = 8sec
Nombre de threads = 4 : Temps de requête = 9sec
Nombre de threads = 8 : Temps de requête = 8sec
Nombre de threads = 10 : Temps de requête = 10sec
Nombre de threads = 12 : Temps de requête = 12sec

Les questions sont les suivantes :

  1. Pourquoi la latence est la même pour SQL BAG et SQL FCI, tous deux benchmarkés via Management Studio ?

  2. Qu'est-ce qui peut augmenter la latence de 3-4 fois pour SQL FCI la base de données ?

3voto

BaronSamedi1958 Points 12444

FCI est de l'histoire ancienne, restez avec les groupes de disponibilité (AG) d'AlwasysOn pour vos nouveaux déploiements. C'est beaucoup plus rapide (parce que SQL Server sait ce qu'il faut répliquer) et au moins les AG de base sont inclus dans l'édition Standard de SQL Server.

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X