Limiti della capacità di calcolo per edizione di SQL Server

Si applica a:SQL Server

Questo articolo illustra i limiti della capacità di calcolo per diverse edizioni di SQL Server e le differenze in ambienti fisici e virtuali con processori dotati di multithreading simultaneo (SMT). Nelle CPU Intel, SMT è denominato Hyper-Threading.

Panoramica

Diagramma che mostra i mapping ai limiti di capacità di calcolo.

Questa tabella descrive le notazioni nel diagramma precedente:

Valore Descrizione
0..1 Zero o uno
1 Esattamente uno
1..* Uno o più
0..* Zero o più
1..2 Uno o due

Per un'ulteriore elaborazione:

  • Una macchina virtuale dispone di uno o più processori virtuali.
  • Uno o più processori virtuali sono allocati a esattamente una macchina virtuale.
  • Viene eseguito il mapping a zero o più processori logici di zero o un processore virtuale. Quando il mapping dei processori virtuali al processore logico è:
    • Uno a zero, rappresenta un processore logico non associato non usato dai sistemi operativi guest.
    • Uno a molti, rappresenta un overcommit.
    • Zero a molti, rappresenta l'assenza di una macchina virtuale sul sistema host. Di conseguenza le macchine virtuali non usano alcun processore logico.
  • Viene eseguito il mapping di un socket a zero o a più core. Quando il mapping da socket a memoria centrale è:
    • Uno a zero, rappresenta un socket vuoto. Non è installato nessun chip.
    • Uno a uno, rappresenta un chip single core installato nel socket. Questo mapping è ormai raro.
    • Uno a molti, rappresenta un chip multi-core installato nel socket. I valori tipici sono 2, 4 e 8.
  • Viene eseguito il mapping di un core a uno o due processori logici. Quando il mapping dalle memorie centrali ai processori logici è:
    • Uno a uno, SMT è disattivato.
    • Uno a due, SMT è attivato.

Le definizioni seguenti si riferiscono ai termini usati in questo articolo:

  • Un thread o un processore logico è un motore di calcolo logico dalla prospettiva di SQL Server, del sistema operativo, di un'applicazione o un driver.

  • Un core è un'unità del processore. Può essere costituito da uno o più processori logici.

  • Un processore fisico può essere costituito da uno o più core. Un processore fisico corrisponde a un pacchetto del processore o a un socket.

Modifica che causa un'interruzione nell'aggiornamento cumulativo di SQL Server 2022 11

SQL Server limita il numero di processori logici per nodo NUMA a 64. Nei server con più di 64 processori logici per nodo NUMA, puoi usare una configurazione BIOS/firmware per modificare il numero di nodi NUMA per socket fisico presentato al sistema operativo, per limitare un massimo di 64 processori logici.

È anche possibile disabilitare SMT. Nelle CPU Intel, SMT è denominato Hyper-Threading.

Osservazioni:

Sistemi con più processori fisici o sistemi con processori fisici che dispongono di molteplici memorie centrali e/o SMT consentono al sistema operativo di eseguire molteplici task simultaneamente. Ogni thread di esecuzione viene visualizzato come un processore logico. Se ad esempio il computer in uso dispone di due processori quad core con SMT abilitato e due thread per memoria centrale, sono presenti 16 processori logici: 2 processori x 4 memorie centrali per processore x 2 thread per memoria centrale. Vale la pena notare che:

  • La capacità di calcolo di un processore logico da un solo thread di una memoria centrale SMT è inferiore alla capacità di calcolo di un processore logico da quello stesso core con SMT disabilitato.

  • La capacità di calcolo dei due processori logici nella memoria centrale SMT è maggiore della capacità di calcolo dello stesso core con SMT disabilitato.

Ogni edizione di SQL Server ha due limiti di capacità di calcolo:

  • Un numero massimo di socket (o processori fisici o pacchetti del processore).

  • Un numero massimo di core come riportato dal sistema operativo.

Questi limiti si applicano a una istanza singola di SQL Server. Rappresentano la capacità di calcolo massima che verrà utilizzata da un’istanza singola. Non vincolano il server sul quale potrebbe essere implementata l'istanza. Infatti la distribuzione di più istanze di SQL Server sullo stesso server fisico è un modo efficiente di usare la capacità di calcolo di un server fisico con più socket e/o core rispetto a quanto consentito dai limiti di capacità.

Nella tabella seguente vengono specificati i limiti della capacità di calcolo per una sola istanza di ogni edizione di SQL Server:

Edizione di SQL Server Capacità di calcolo massima per una sola istanza (motore di database di SQL Server) Capacità di calcolo massima per una singola istanza (AS, RS)
Edizione Enterprise: licenze basate su core 1 Valore massimo del sistema operativo Valore massimo del sistema operativo
Sviluppatore Valore massimo del sistema operativo Valore massimo del sistema operativo
Standard Limitato a meno di 4 socket o 24 core Limitato a meno di 4 socket o 24 core
Express Limitato a meno di 1 socket o 4 core Limitato a meno di 1 socket o 4 core

1 La licenza edizione Enterprise con Server + licenza CAL (Client Access License) è limitata a un massimo di 20 memorie centrali per istanza di SQL Server. (Questa licenza non è disponibile per i nuovi contratti.) Non sono previsti limiti per il modello di gestione delle licenze server basate su memoria centrale.

In un ambiente virtualizzato, il limite di capacità di calcolo è basato sul numero di processori logici e non sul numero di core. Il motivo è che l'architettura del processore non è visibile alle applicazioni guest.

Ad esempio, un server con quattro socket popolati con processori quad-core e la capacità di abilitare due SMT per core contiene 32 processori logici con SMT abilitato. Tuttavia contiene solo 16 processori logici con SMT disabilitato. Questi processori logici possono essere mappati su macchine virtuali nel server. Il carico di calcolo delle macchine virtuali sul processore logico viene mappato su un thread di esecuzione nel processore fisico del server host.

Può risultare utile disabilitare SMT quando le prestazioni per processore virtuale sono importanti. Puoi abilitare o disattivare SMT utilizzando un’impostazione BIOS per il processore durante la configurazione del BIOS, ma è in genere un'operazione con ambito server che avrà un impatto su tutti i carichi di lavoro in esecuzione sul server. Puoi considerare la separazione dei carichi di lavoro che saranno in esecuzione negli ambienti virtuali da quelli che trarranno vantaggio dal miglioramento delle prestazioni SMT in un ambiente del sistema operativo fisico.

Ottenere aiuto

Contribuire alla documentazione di SQL

Il contenuto SQL può essere modificato. L'autore delle modifiche contribuirà a migliorare la documentazione e verrà accreditato come collaboratore alla realizzazione della pagina.

Per maggiori informazioni, vedere Come contribuire alla documentazione di SQL Server