Condividi tramite


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 altre periferiche 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, le periferiche RAID (Redundant Array of Independent Disks) utilizzano più mandrini. Una periferica RAID hardware viene visualizzata come un disco fisico in Monitor di sistema. Le periferiche RAID create tramite software vengono visualizzate 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 una periferica 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 state 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.