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:
quelle
Antworten:
Da sich Ihr DC auf einer VM befindet, besteht vermutlich eine schlechte Festplattenleistung. Eine schlechte Festplattenleistung kann zu langsameren Protokollschreibzeiten auf dem sekundären Replikat führen, was zu einer langsameren Bestätigung des sekundären Replikats zum primären Replikat führen kann (erschöpfende Arbeitsthreads).
Die Festplattenlatenz auf dem sekundären Replikat kann zu einer Erhöhung des HADR-Synchronisierungs-Commit-Prozesses führen, was dazu führt, dass der primäre Thread offene Threads hält, während er darauf wartet, dass der sekundäre die Transaktion bestätigt.
Überprüfen Sie das Fehlerprotokoll für Deadlocked Scheduler und erfassen Sie einige E / A-Metriken von PerfMon, um die Festplattenlatenz und die Länge der Festplattenwarteschlange zu ermitteln.
quelle