Monitoraggio dell'utilizzo del disco

Microsoft SQL Server utilizza le chiamate di input/output (I/O) del sistema operativo Microsoft Windows per eseguire operazioni di lettura e scrittura sul disco. SQL Server gestisce il momento e la modalità in cui viene eseguita l'attività di I/O sul disco, ma le operazioni di I/O sottostanti vengono eseguite dal sistema operativo Windows. Il sottosistema di I/O include il bus di sistema, le schede dei controller dei dischi, i dischi, le unità a nastro, l'unità CD-ROM e numerose altri dispositivi di I/O. L'attività di I/O su disco rappresenta frequentemente la causa di colli di bottiglia in un sistema.

Il monitoraggio dell'attività del disco si concentra su due aree:

  • Monitoraggio dell'I/O su disco e rilevamento della paginazione eccessiva

  • Isolamento dell'attività del disco creata da SQL Server

Monitoraggio dell'I/O su disco e rilevamento della paginazione eccessiva

Tra i contatori che è possibile monitorare per determinare l'attività del disco sono inclusi:

  • Disco fisico: % Tempo disco

  • Disco fisico: Lunghezza media coda del disco

In Monitor di sistema il contatore Disco fisico: % Tempo disco indica la percentuale di tempo dedicata dal disco ad attività di lettura/scrittura. Se il valore relativo al contatore Disco fisico: % Tempo disco è elevato, ovvero superiore a 90 percento, verificare il contatore Disco fisico: Lunghezza corrente coda del disco per verificare il numero di richieste del sistema in attesa di accesso al disco. Il numero di richieste di I/O in attesa non dovrebbe essere maggiore di 1,5/2 volte il numero di mandrini del disco fisico. La maggior parte dei dischi utilizza un unico mandrino. Al contrario, i dispositivi RAID (Redundant Array of Independent Disks) utilizzano più mandrini. Un dispositivo RAID hardware viene visualizzata come un disco fisico in Monitor di sistema. I dispositivi RAID creati tramite software vengono visualizzati come istanze multiple in Monitor di sistema.

Utilizzare i valori dei contatori Lunghezza corrente coda del disco e % Tempo disco per individuare i colli di bottiglia all'interno del sottosistema di dischi. Se i valori dei contatori Lunghezza corrente coda del disco e % Tempo disco sono costantemente elevati, prendere in considerazione una delle operazioni seguenti:

  • Utilizzo di un'unità disco più veloce.

  • Spostamento di parte dei file in un disco o server aggiuntivo.

  • Aggiunta di ulteriori dischi in un array RAID, se disponibile.

Se si utilizza un dispositivo RAID, è possibile che il contatore % Tempo disco visualizzi un valore maggiore di 100%. In tal caso, utilizzare il contatore Disco fisico: Lunghezza media coda del disco per determinare la media delle richieste di sistema in attesa dell'accesso al disco.

È possibile che le applicazioni e i sistemi basati su operazioni di I/O mantengano il disco costantemente attivo.

Monitorare il contatore Memoria: Errori di pagina/sec per assicurarsi che l'attività del disco non sia dovuta alla paginazione. In Windows la paginazione è causata da:

  • Processi configurati per l'utilizzo di una quantità di memoria eccessiva.

  • Attività del file system.

Se sono presenti più partizioni logiche sullo stesso disco rigido, utilizzare i contatori Disco logico anziché Disco fisico. L'analisi dei valori dei contatori dei dischi logici consente di individuare i file a cui si accede più di frequente. Dopo aver individuato i dischi con maggiore attività di lettura/scrittura, esaminare i contatori specifici della lettura e della scrittura, ad esempio Disco logico: Byte scritti su disco/sec per informazioni sul tipo di attività del disco responsabile del carico di ogni volume logico.

Attività del disco causata da SQL Server

Tra i contatori che è possibile monitorare per determinare la quantità di I/O generata da SQL Server sono inclusi:

  • SQL Server:Gestione buffer:Letture di pagina/sec

  • SQL Server:Gestione buffer:Scritture di pagina/sec

In Monitor di sistema questi contatori consentono di monitorare la quantità di I/O generata dai componenti di SQL Server tramite l'analisi delle aree seguenti relative alle prestazioni:

  • Scrittura di pagine sul disco

  • Lettura di pagine dal disco

Se i valori relativi a questi contatori si avvicinano al limite di capacità del sottosistema di I/O hardware, è necessario tentare di ridurre tali valori configurando l'applicazione o il database in modo da limitare le operazioni di I/O (copertura degli indici, indici migliori o normalizzazione), aumentando la capacità di I/O dell'hardware o aumentando la memoria. Ad esempio, è possibile utilizzare Ottimizzazione guidata motore di database per analizzare i carichi di lavoro tipici di SQL Server e creare indicazioni per indici, viste indicizzate e partizionamento per migliorare le prestazioni del server. Per ulteriori informazioni su Ottimizzazione guidata motore di database, vedere Ottimizzazione della progettazione fisica di database.