Perché il numero di thread di lavoro di un gruppo di disponibilità in un pool HADR dovrebbe aumentare ben oltre l'utilizzo minimo di "in genere, ci sono 3-10 thread condivisi " per replica?
In un caso abbiamo osservato l'utilizzo di oltre 300 thread con 3 gruppi di disponibilità e 10 database in totale. SQL Server 2014 SP1.
I nostri lead sono backup su replica secondaria, attività elevata su replica primaria, report su replica secondaria.
Gli AG si trovano in un datacenter su VMware. 16 programmatori in totale, i normali thread di lavoro rientrano nell'intervallo 200. max_dop sul server è 2.
- 3 AG, 10 DB, 4 repliche ciascuno - primario, 2 di sola lettura, 1 non leggibile.
- 1 secondario è synch, 2 asincrono
- 16 vcores su 32 core fisici su cluster multi host di grandi dimensioni.
- Nessuna overprovision.
- Altre VM più piccole 4-8 core sono raggruppate, ma non premono sulla CPU
Abbiamo osservato un picco nei thread di lavoro con conseguente negazione del servizio. Il nostro presupposto è l'attribuzione di thread di lavoro a AG, poiché solo i thread di lavoro possono superare il limite.
I collegamenti seguenti dal blog di SQL Server Premier Field Engineer, letti nel contesto, non mi danno una risposta completa: