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:

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.

Una connessione utilizza qualsiasi nodo NUMA.

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.

Una porta connessa a più nodi NUMA.

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.

Più porte connesse a tutti i nodi NUMA disponibili