Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server
Questo articolo illustra come risolvere la riduzione delle prestazioni a causa di operazioni di I/O non allineate in SQL Server quando le dimensioni del settore fisico differiscono tra le unità disco.
Panoramica
SQL Server può riscontrare operazioni di I/O non allineate quando le dimensioni fisiche del settore delle unità disco differiscono tra server o sistemi di archiviazione. Questa condizione può ridurre le prestazioni ed è particolarmente comune negli ambienti in cui le dimensioni del settore non corrispondono, ad esempio:
- Macchine virtuali con archiviazione collegata
- Gruppi di disponibilità Always On
- Log shipping
- Migrazioni hardware
Ad esempio, si verifica un problema comune quando il server primario usa dimensioni di settore da 4 KB mentre il server secondario usa 512 byte. Questo problema causa operazioni di I/O non allineate durante i processi di sincronizzazione o ripristino dei log. Questo errore di allineamento può comportare una riduzione delle prestazioni, ad esempio i ripristini lenti o i ritardi di sincronizzazione.
Il flag di traccia 1800 garantisce che SQL Server usi dimensioni di settore coerenti di 4 KB per le operazioni di I/O del log delle transazioni, indipendentemente dalle dimensioni del settore fisico del disco sottostante. Questo flag di traccia è progettato per mantenere le prestazioni in ambienti misti in cui i server potrebbero essere stati aggiornati o migrati all'hardware con specifiche di archiviazione diverse.
Per i database con carichi di lavoro a elevato utilizzo di scrittura, l'allineamento delle operazioni di I/O può migliorare significativamente le prestazioni, mentre i vantaggi potrebbero essere trascurabili in ambienti con utilizzo intensivo di lettura.
Sintomi
È possibile che si verifichi una riduzione delle prestazioni in SQL Server a causa di operazioni di I/O non allineate se si verifica uno dei sintomi seguenti:
Tempi di sincronizzazione o ripristino lenti: le operazioni di I/O non allineate possono comportare tempi di sincronizzazione o ripristino lenti, in particolare in ambienti SQL Server distribuiti, ad esempio gruppi di disponibilità AlwaysOn o log shipping.
Messaggi di errore nel log degli errori di SQL Server: i messaggi di errore correlati alle operazioni di I/O possono indicare problemi di allineamento non corretto, ad esempio:
There have been # misaligned log IOs which required falling back to synchronous IO.Colli di bottiglia delle prestazioni durante operazioni a elevato utilizzo di scrittura: operazioni a elevato utilizzo di scrittura, ad esempio backup del log o ripristini di database, potrebbero riscontrare una latenza elevata del disco e un aumento dei tempi di attesa di I/O dovuti a operazioni di I/O non allineate, causando colli di bottiglia delle prestazioni e tempi di risposta lenti.
Verificare le dimensioni del settore
Per evitare operazioni di I/O non allineate, è importante assicurarsi che le dimensioni fisiche delle unità disco siano coerenti in tutti i server e i sistemi di archiviazione.
È possibile verificare le dimensioni del settore eseguendo il comando seguente in un prompt dei comandi con privilegi elevati:
fsutil fsinfo sectorinfo <volume path name>
Lo screenshot seguente mostra l'output del fsutil fsinfo sectorinfo comando per l'unità E: , con dimensioni del settore pari a 8 KB, ma dimensioni del settore fisico pari a 4 KB, causando operazioni di I/O non allineate:
Risoluzione
Se si verifica una riduzione delle prestazioni a causa di operazioni di I/O non allineate e non è possibile modificare le dimensioni del settore, è possibile usare il flag di traccia 1800 come parametro di avvio globale per forzare SQL Server a usare dimensioni di settore coerenti di 4 KB per le operazioni di I/O del log delle transazioni.
Per abilitare il flag di traccia 1800 come parametro di avvio, seguire questa procedura:
Nel sistema in cui è installato SQL Server aprire Gestione configurazione SQL Server.
Espandere Gestione configurazione SQL Server (locale) e selezionare Servizi SQL Server.
Fare clic con il pulsante destro del mouse sull'istanza di SQL Server che si vuole configurare e selezionare Proprietà:
In Proprietà di SQL Server selezionare la scheda Parametri di avvio, immettere
-T1800nel campo Specifica un parametro di avvio e selezionare Aggiungi per aggiungere il parametro all'elenco.
Verificare che il flag di traccia sia stato aggiunto all'elenco dei parametri di avvio. Selezionare OK per salvare le modifiche:
Riavviare il servizio SQL Server per abilitare il flag di traccia all'avvio dell'istanza.
Riferimenti
KB3009974 - CORREZIONE: Sincronizzazione lenta quando i dischi hanno dimensioni del settore diverse