Pourquoi le nombre de threads de travail d'un groupe de disponibilité dans un pool HADR augmenterait-il bien au-delà de l'utilisation minimale de « généralement, il y a 3 à 10 threads partagés » par réplique?
Dans un cas, nous avons observé l'utilisation de plus de 300 threads avec 3 groupes de disponibilité et 10 bases de données au total. SQL Server 2014 SP1.
Nos pistes sont la sauvegarde sur la réplique secondaire, une activité élevée sur la réplique principale, des rapports sur la réplique secondaire.
Les AG sont dans un centre de données sur VMware. 16 ordonnanceurs au total, les threads de travail habituels sont inférieurs à 200. max_dop sur le serveur est 2.
- 3 AG, 10 DB, 4 répliques chacun - primaire, 2 en lecture seule, 1 non lisible.
- 1 secondaire est synchronisé, 2 asynchrones
- 16 vcores sur 32 cœurs physiques sur un grand cluster multi-hôtes.
- Pas de surprovision.
- D'autres petits cœurs de machines virtuelles 4-8 sont colocalisés, mais ils n'appuient pas sur le processeur
Nous avons observé une pointe dans les fils de travail entraînant un déni de service. L'attribution de threads de travail à AG est notre hypothèse, car seuls ces threads de travail peuvent franchir la limite.
Les liens ci-dessous du blog SQL Server Premier Field Engineer lus dans leur contexte ne me donnent pas une réponse complète: