Warum würde die Anzahl der Arbeitsthreads einer Verfügbarkeitsgruppe in einem HADR-Pool weit über die Mindestverwendung von " Normalerweise gibt es 3 bis 10 gemeinsam genutzte Threads " pro Replikat hinaus ansteigen ?
In einem Fall haben wir die Verwendung von mehr als 300 Threads mit 3 Verfügbarkeitsgruppen und insgesamt 10 Datenbanken beobachtet. SQL Server 2014 SP1.
Unsere Leads sind Backups auf sekundären Replikaten, hohe Aktivität auf primären Replikaten und Berichte über sekundäre Replikate.
Die AGs befinden sich in einem Rechenzentrum auf VMware. Insgesamt 16 Scheduler, übliche Worker-Threads liegen unter 200. max_dop auf dem Server ist 2.
- 3 AG, 10 DB, je 4 Replikate - primär, 2 schreibgeschützt, 1 nicht lesbar.
- 1 sekundäre ist synchron, 2 asynchron
- 16 vcores auf 32 physischen Kernen auf einem großen Multi-Host-Cluster.
- Keine Überprovision.
- Andere kleinere VMs mit 4 bis 8 Kernen sind kolokalisiert, drücken jedoch nicht auf die CPU
Wir haben einen Anstieg der Arbeitsthreads beobachtet, der zu Denial-of-Service führte. Die Zuordnung von Worker-Threads zu AG ist unsere Annahme, da nur diese Worker-Threads das Limit überschreiten können.
Die folgenden Links aus dem im Kontext gelesenen SQL Server Premier Field Engineer-Blog geben mir keine vollständige Antwort: