Messaggi FlushCache costanti SQL Errorlog

Sep 04 2020

Un server che fa parte di un SQL 2017 Always on availability group (BAG) ho notato un aumento di questi messaggi. Capisco che si tratti di messaggi che appaiono nel registro come standard dal 2012 (flag di traccia prima del 2012) ma negli ultimi 2 giorni vengono visualizzati ogni pochi minuti, non ci sono backup in esecuzione o lavori di manutenzione in questi orari

Il server funge da partner di failover secondario non leggibile e il server primario non presenta lo stesso comportamento.

09/04/2020 10:52:24, spid82s, sconosciuto, FlushCache: puliti 2303 buf con 1881 scritture in 81090 ms (evitati 11 nuovi buf sporchi) per db 7: 0 09/04/2020 10:52:07, spid52s, sconosciuto, ultimo target in sospeso: 2 avgWriteLatency 86 09/04/2020 10:52:07, spid52s, sconosciuto, scritture medie al secondo: 17,70 scritture / sec throughput medio: 0,19 MB / sec saturazione I / O: 13073 cambi di contesto 15434

C'è anche un avviso nel registro degli errori di sistema sul problema del disco, pochi secondi dopo questo il gruppo di disponibilità ha fallito da quando i messaggi FlushCache sono aumentati.

Qualcuno ha sperimentato qualcosa di simile o ha qualche consiglio, il mio amministratore di sistema sta anche esaminando la proprietà SAN e VMware.

Aveva pensato all'improvviso che questi potessero essere causati da attività di crescita automatica?

Risposte

4 AaronBertrand Sep 04 2020 at 10:05

Passa ai checkpoint indiretti (in genere, imposta l'intervallo di ripristino su 60 secondi, almeno per i database utente).

Ho scritto su questo problema qui e qui , e dovresti leggere quei post per intero prima di apportare la modifica, anche se IMHO è praticamente un gioco da ragazzi.

L'impatto sul nostro ambiente è stato drastico e immediato ed è stato semplice dimostrare che il cambiamento era responsabile. Ogni database con il sintomo è passato da checkpoint di 30-60 secondi e log degli errori pieni di questi messaggi, a checkpoint inferiori al secondo e non più voci del log degli errori.

Probabilmente ci sono anche tecniche di mitigazione per il tuo carico di lavoro, ad esempio vedi questo post di Itzik Ben-Gan ma rendere i checkpoint più efficienti è un percorso più veloce e più facile. La tua memoria e la gente della VM non sono fuori dai guai, però; c'è sicuramente un problema del disco che devono risolvere (ma non sono d'accordo sul fatto che questi messaggi FlushCache siano stati la causa principale di qualsiasi failover; più probabilmente sono solo una vittima / sintomo diverso).

3 DanCo Sep 04 2020 at 10:22

Verificare con l'amministratore di archiviazione se ci sono aggiornamenti del firmware di recente o se il sottosistema di archiviazione necessita di un aggiornamento del firmware più recente. Ho visto più volte questi messaggi sull'ambiente SQL e una cosa che puoi vedere è la configurazione del livello di archiviazione (questa è la causa comune). Inoltre, una cosa per monitorare le prestazioni del disco utilizzando perfmon. contatori del disco è necessario concentrarsi su: avg disk sec/Read, avg disk sec/Write, avg disk sec/Transfer.

Puoi controllare il seguente link che puoi guardare sotto:

  1. Come funziona: quando viene aggiunto il messaggio FlushCache al log degli errori di SQL Server?
  2. https://techcommunity.microsoft.com/t5/sql-server-support/how-it-works-when-is-the-flushcache-message-added-to-sql-server/ba-p/317038

Quando dico livello di archiviazione, controlla quanto segue: HBA / CNA, cavo in fibra, switch FC, porte, controller di archiviazione, software (driver MPIO) - tutta la sua configurazione

Infine, consiglio vivamente di controllare e analizzare sempre i messaggi di avviso / errore nei registri degli eventi. NON lasciarlo passare perché questo tipo di messaggi ha conseguenze a lungo termine lungo la strada.