Condividi tramite


Opzione affinity I/O mask

Per implementare l'elaborazione multitasking, talvolta Microsoft Windows 2000 e Windows Server 2003 spostano i thread dei processi tra diversi processori. Sebbene dal punto di vista del sistema operativo questa attività sia efficiente, essa può ridurre le prestazioni di Microsoft SQL Server con carichi di lavoro di sistema eccessivi poiché i dati vengono caricati ripetutamente nella cache di ogni processore. In tali condizioni, l'assegnazione dei processori a specifici thread può aumentare le prestazioni eliminando il ricaricamento dei processori. Questa associazione tra un thread e un processore è definita affinità processori.

SQL Server 2005 supporta l'affinità processori per mezzo di due opzioni di maschera di affinità: affinity mask (definita anche CPU affinity mask) e affinity I/O mask. Per ulteriori informazioni sull'opzione affinity mask, vedere Opzione affinity mask. Il supporto dell'affinità di CPU e I/O nei server dotati di un numero di processori compreso tra 33 e 64 richiede l'utilizzo supplementare di Opzione affinity64 mask e Opzione affinity64 I/O mask, rispettivamente.

[!NOTA] Il supporto dell'affinità nei server dotati di un numero di processori compreso tra 33 e 64 è disponibile solo su sistemi operativi a 64 bit.

L'opzione affinity I/O mask associa l'I/O su disco di SQL Server a un subset specificato di CPU. Negli ambienti SQL Server di fascia alta con elaborazione delle transazioni in linea (OLTP), questa estensione può migliorare le prestazioni dei thread di SQL Server che generano operazioni di I/O. Questa funzionalità avanzata non supporta affinità hardware per singoli dischi o controller del disco.

Il valore di affinity I/O mask specifica quali CPU di un computer multiprocessore sono idonee a elaborare le operazioni di I/O su disco di SQL Server. La maschera è costituita da una mappa di bit nella quale il primo bit a destra specifica la CPU di ordine inferiore (ovvero CPU(0)), il bit alla sua immediata sinistra specifica la CPU di ordine successivo (ovvero CPU(1)) e così via. Per configurare più di 32 processori, impostare sia l'opzione affinity I/O mask che l'opzione affinity64 I/O mask.

I valori di affinity I/O mask sono i seguenti:

  • L'utilizzo di una affinity I/O mask da 1 byte consente di coprire fino a 8 CPU in un computer multiprocessore.
  • L'utilizzo di una affinity I/O mask da 2 byte consente di coprire fino a 16 CPU in un computer multiprocessore.
  • L'utilizzo di una affinity I/O mask da 3 byte consente di coprire fino a 24 CPU in un computer multiprocessore.
  • L'utilizzo di una affinity I/O mask da 4 byte consente di coprire fino a 32 CPU in un computer multiprocessore.
  • Per coprire più di 32 CPU, configurare una affinity I/O mask da 4 byte per le prime 32 CPU e una affinity64 I/O mask fino a 4 byte per le CPU rimanenti.

Un bit 1 nello schema della maschera di affinità di I/O indica che la CPU corrispondente è idonea all'esecuzione di operazioni di I/O su disco di SQL Server, mentre un bit 0 indica che per la CPU corrispondente non deve essere pianificata alcuna operazione di I/O su disco di SQL Server. Quando tutti i bit sono impostati su zero oppure l'opzione affinity I/O mask non è specificata, le operazioni di I/O su disco di SQL Server vengono pianificate per una qualsiasi CPU idonea a elaborare i thread di SQL Server.

L'impostazione dell'opzione SQL Server affinity I/O mask è un'attività complessa, che è consigliabile eseguire solo in caso di necessità. Nella maggior parte dei casi l'affinità predefinita di Windows 2000 o Windows Server 2003 garantisce livelli di prestazioni ottimali.

Quando si specifica l'opzione affinity I/O mask, è necessario utilizzarla insieme all'opzione di configurazione affinity mask. Non abilitare la stessa CPU sia nell'opzione affinity I/O mask che nell'opzione affinity mask. I bit corrispondenti alle singole CPU devono rispettare uno dei tre stati seguenti:

  • 0 sia nell'opzione affinity I/O mask che nell'opzione affinity mask.
  • 1 nell'opzione affinity I/O mask e 0 nell'opzione affinity mask.
  • 0 nell'opzione affinity I/O mask e 1 nell'opzione affinity mask.

L'opzione affinity I/O mask è un'opzione avanzata. Se si utilizza la stored procedure di sistema sp_configure per modificare l'impostazione, l'opzione affinity I/O mask può essere modificata solo quando l'opzione show advanced options è impostata su 1. In SQL Server 2005, la riconfigurazione dell'opzione affinity I/O mask richiede un riavvio dell'istanza di SQL Server.

ms189629.Caution(it-it,SQL.90).gifAttenzione:
Non configurare l'affinità di CPU nel sistema operativo Windows e contemporaneamente l'opzione affinity mask in SQL Server. Le due impostazioni mirano a ottenere lo stesso risultato e, se le configurazioni sono incoerenti, potrebbero causare risultati imprevisti. La configurazione ottimale dell'affinità di CPU in SQL Server può essere ottenuta utilizzando l'opzione sp_configure di SQL Server.

Vedere anche

Concetti

Impostazione delle opzioni di configurazione del server

Altre risorse

Monitoraggio dell'utilizzo delle risorse (Monitor di sistema)
RECONFIGURE (Transact-SQL)
sp_configure (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005