Database
 sql >> Base de données >  >> RDS >> Database

Vitesses de débit et flux séquentiels

Je parle depuis un certain temps de l'importance des performances de débit séquentiel pour SQL Server. Le débit séquentiel est d'une importance cruciale pour de nombreuses opérations courantes dans SQL Server, notamment :

  1. Sauvegardes et restaurations complètes de la base de données
  2. Travail de création et de maintenance d'index
  3. Initialisation des instantanés de réplication et des abonnements
  4. Initialisation des répliques AlwaysOn AG
  5. Initialisation des miroirs de base de données
  6. Initialisation de l'envoi de journaux secondaire
  7. Charges de travail de requête d'entrepôt de données relationnelles
  8. Opérations ETL d'entrepôt de données relationnelles

Malgré l'importance du débit séquentiel pour SQL Server, je vois encore beaucoup de gens qui se concentrent uniquement sur les performances et la latence des E/S aléatoires, tout en ignorant largement les performances de débit séquentiel. Lorsque vous réfléchissez aux performances de débit séquentiel, vous devez tenir compte du chemin complet des données, depuis leur repos sur votre support de stockage jusqu'à leur consommation par les cœurs de votre processeur.

Selon le type de technologie de stockage que vous utilisez, il peut être connecté à votre serveur hôte par une carte d'interface réseau Ethernet (NIC) ou une carte adaptateur de canal hôte (HCA) InfiniBand. Ce type de connexion est le plus courant pour les SAN iSCSI et pour les partages de fichiers SMB (Remote Server Message Block) 3.0. Microsoft TechNet propose une bonne référence à ce sujet, intitulée Améliorer les performances d'un serveur de fichiers avec SMB Direct.

Le débit séquentiel théorique d'un seul périphérique NIC/HCA (par port) est illustré à la figure 1 :

Figure 1 :Débit théorique NIC/HCA

Juste au cas où vous vous demanderiez à quoi font référence InfiniBand (QDR) ou Infiniband (FDR), l'InfiniBand Trade Association maintient une feuille de route InfiniBand qui montre l'historique et les progrès prévus de la bande passante InfiniBand au cours des prochaines années. Infiniband a une liste d'acronymes qui décrivent les performances relatives d'un lien InfiniBand comme indiqué ci-dessous :

  • SDR – Débit de données unique
  • DDR :double débit de données
  • QDR – Quadruple débit de données
  • FDR – Quatorze débits de données
  • EDR – Débit de données amélioré
  • HDR :débit de données élevé
  • NDR – Débit de données suivant

Les SAN Fibre Channel (FC) traditionnels utilisent généralement un ou plusieurs adaptateurs de bus hôte (HBA) qui ont un ou plusieurs ports pour les câbles optiques qui se connectent à un commutateur FC ou directement au SAN FC lui-même. Il est encore relativement rare de voir des HBA FC 16 Go largement utilisés, de sorte que la plupart des serveurs hôtes ont encore des HBA FC 4 Go ou 8 Go.

Le débit séquentiel théorique d'un seul périphérique HBA (par port) est illustré à la Figure 2 :

Figure 2 :Débit HBA théorique

Quel que soit le type de périphérique d'interface ou de technologie que vous utilisez, vous devez vous préoccuper du type de logement de bus d'extension auquel il est connecté sur votre serveur hôte. Selon l'âge de votre serveur et le type de processeur qu'il utilise, cela peut avoir un impact énorme sur la bande passante totale que le slot de bus peut prendre en charge. Les slots Peripheral Component Interconnect Express (PCIe) Gen 3 ont deux fois plus de bande passante par voie qu'un slot PCIe Gen 2 plus ancien. Vous pouvez déterminer le nombre et le type d'emplacements d'extension dont vous disposez sur votre serveur hôte en consultant les spécifications et la documentation de votre marque et de votre modèle de serveur. Jusqu'à présent, seuls les processeurs de la famille Intel Xeon E3 v2, Xeon E3 v3, Xeon E5, Xeon E5 v2, Xeon E5 v3 et Xeon E7 v2 prennent en charge les emplacements PCIe Gen 3. Tout ce qui est plus ancien aura des emplacements PCIe Gen 2, ou peut-être même des emplacements PCIe Gen 1 s'il est extrêmement ancien (en termes informatiques).

Le débit séquentiel théorique d'un seul emplacement PCIe est illustré à la figure 3 :

Figure 3 :Débit théorique de l'emplacement d'extension

Depuis l'introduction de la microarchitecture Intel Nehalem en 2008, tous les processeurs de serveur Intel 2P et plus prennent en charge Intel QuickPath Interconnect (QPI) pour les connexions entre les processeurs et la mémoire d'un serveur, ce qui permet à ces nouveaux processeurs de prendre en charge l'accès mémoire non uniforme. (NUMA), qui a remplacé l'ancien bus frontal (FSB). NUMA améliore considérablement l'évolutivité à mesure que le nombre de processeurs physiques dans un système augmente, en particulier lorsque vous avez quatre processeurs physiques ou plus dans un système hôte.

Les processeurs Intel modernes ont des contrôleurs de mémoire intégrés qui prennent en charge Intel QPI. Lorsque vous examinez les spécifications d'un processeur Intel particulier dans la base de données ARK en ligne, vous pourrez voir ses performances QPI nominales en GigaTransfers par seconde (GT/sec). Un GigaTransfer par seconde correspond simplement à un milliard d'opérations qui transfèrent des données par seconde.

Par exemple, un processeur Intel Xeon E5-2667 v3 haut de gamme (Haswell-EP) moderne a une vitesse Intel QPI de 9,6 GT/sec, tandis qu'un processeur Intel Xeon E5503 bas de gamme plus ancien (Nehalem-EP) a une Vitesse Intel QPI de seulement 4,8 GT/sec. Même parmi les processeurs de la même génération de microarchitecture, vous verrez des variations dans la vitesse Intel QPI nominale. Par exemple, dans la famille Haswell-EP 22 nm, le processeur Intel Xeon E5-2603 v3 bas de gamme est évalué à 6,4 GT/sec, tandis que le processeur Intel Xeon E5-2660 v3 haut de gamme est évalué à 9,6 GT/sec. Les processeurs Intel Xeon E5, E5 v2 et E5 v3 ont deux liens QPI par processeur, tandis que les processeurs de la famille Intel E7 et E7 v2 ont trois liens QPI par processeur.

Le débit séquentiel théorique d'une seule liaison Intel QPI est illustré à la figure 4 :

Figure 4 :Débit Intel QPI théorique

En fonction de l'âge de votre serveur hôte, du processeur exact qu'il utilise et du type, de la vitesse et de la quantité de mémoire installée, vous aurez différentes quantités de débit séquentiel théorique disponibles à partir de chaque module de mémoire. Tous les processeurs Intel modernes ont des contrôleurs de mémoire intégrés qui contrôlent la quantité et la fréquence de la mémoire que le processeur prendra en charge. Les serveurs hôtes vintage les plus récents utiliseront la mémoire DDR3, tandis que les processeurs Haswell-EP de dernière génération (famille Intel Xeon E5 v3) prendront en charge la mémoire DDR4. La mémoire DDR4 prend en charge des vitesses plus élevées, un débit plus élevé, une densité de mémoire plus élevée, une consommation d'énergie réduite et une fiabilité améliorée par rapport à la mémoire DDR3.

Le débit séquentiel théorique d'un seul module de mémoire est illustré à la figure 5 :

Figure 5 :débit théorique du module de mémoire

Lorsque vous examinez les composants individuels d'un nouveau système existant ou prévu, vous devez être à l'affût des composants incompatibles qui peuvent introduire des goulots d'étranglement de performances séquentiels artificiels dans le système. Par exemple, vous pouvez avoir un tout nouveau serveur avec des processeurs haut de gamme qui est paralysé par le fait qu'il utilise un HBA FC 4 Go pour accéder à un SAN. Un autre exemple pourrait être une carte de stockage flash PCIe très rapide ou un contrôleur RAID installé dans un emplacement PCIe 2.0 x4 à faible bande passante, ce qui limitait artificiellement le débit séquentiel total du périphérique.

Je sais que cela a représenté beaucoup d'informations techniques à digérer, en particulier pour les personnes qui ne sont pas passionnées par le matériel. Je pense que l'idée principale que vous devriez retenir de cet article est que les performances de débit séquentiel sont assez importantes pour de nombreuses tâches et charges de travail SQL Server courantes. Les détails de bas niveau sur les processeurs, les types de mémoire, les connecteurs d'extension et les périphériques d'extension font en fait une grande différence dans les performances de débit séquentiel que vous obtiendrez d'un serveur et de son sous-système de stockage. Avoir un bon débit séquentiel vous facilite la vie en tant que professionnel des bases de données, vous permettant de soutenir votre organisation à un niveau beaucoup plus élevé.