Scenari NUMA
In computer dotati di molte CPU, l'utilizzo di hardware NUMA (Non-Uniform Memory Access) consente di migliorare sensibilmente le prestazioni tramite abbinamento di memoria dedicata alle CPU. In questo argomento vengono descritte alcune configurazioni NUMA, affinità di CPU e affinità di connessione che consentono di migliorare ulteriormente le prestazioni per scenari specifici. Tali configurazioni sono determinate dalle impostazioni seguenti:
L'hardware NUMA viene fornito dal produttore del computer.
Soft-NUMA viene impostato tramite il Registro di sistema. Per informazioni sulla configurazione di Soft-NUMA, vedere Procedura: Configurazione di SQL Server per l'utilizzo di Soft-NUMA.
L'affinità di CPU viene impostata tramite l'opzione affinity mask.
La porta per l'affinità NUMA viene configurata come un'impostazione del server tramite Gestione configurazione SQL Server. Per ulteriori informazioni, vedere Procedura: Mapping delle porte TCP/IP ai nodi NUMA.
Scenari utili
Quando si utilizza NUMA, gli scenari più frequenti sono i seguenti.
A. Nessuna porta per l'affinità NUMA
Si tratta della condizione predefinita in un computer con NUMA hardware e un'unica istanza di SQL Server. Tutto il traffico viene immesso tramite un'unica porta e distribuito a qualsiasi nodo NUMA disponibile in base all'algoritmo round-robin. NUMA migliora la prossimità di accesso alla memoria e alla CPU e aumenta il numero di thread di I/O e Lazywriter. Le connessioni, dopo essere state stabilite, vengono definite a livello di ambito di tale nodo. In questo modo è possibile ottenere il bilanciamento automatico del carico tra i nodi NUMA. Le applicazioni client possono connettersi a una singola porta ed essere distribuite in modo semplice.
B. Associazione di un'unica porta a più nodi per ottenere migliori prestazioni per un'applicazione prioritaria
Creare affinità tra una porta e numerosi nodi NUMA hardware per soddisfare le richieste di un'applicazione altamente prioritaria. Creare affinità tra una seconda porta e un altro nodo NUMA hardware per soddisfare le esigenze di un'applicazione secondaria. Le risorse di memoria e delle CPU per le due applicazioni vengono configurate in maniera non bilanciata, fornendo all'applicazione prioritaria una quantità di memoria locale e di risorse delle CPU tre volte superiore rispetto a quella dell'applicazione secondaria. L'applicazione secondaria può essere una seconda istanza di Motore di database, una funzione meno importante nella stessa istanza di Motore di database o anche lo stesso database. In questo modo è possibile creare una sorta di priorità nell'esecuzione dei thread fornendo risorse aggiuntive alla connessione preferita.
C. Associazione di più porte a più nodi
È possibile eseguire il mapping di più porte sugli stessi nodi NUMA. Questa operazione consente di configurare autorizzazioni diverse su più porte. Ad esempio, è possibile limitare rigorosamente l'accesso fornito tramite una porta controllando le autorizzazioni nell'endpoint TCP corrispondente. In questo esempio, la porta 1450 è ampiamente disponibile in una rete Intranet. La porta 1433 è aperta a Internet attraverso un firewall, ma l'accesso è rigorosamente limitato. Entrambe le porte possono sfruttare NUMA in modo completo ed equo.