Limiti della capacità di calcolo per edizione di SQL Server
In questo argomento si illustrano i limiti della capacità di calcolo per differenti edizioni di SQL Server 2012 e le differenze in ambienti fisici e virtualizzati con i processori con l'Hyper-Threading.
Nella tabella seguente vengono descritte le notazioni utilizzate nel diagramma sopra riportato:
Valore |
Descrizione |
---|---|
0..1 |
Zero o uno |
1 |
Esattamente uno |
1..* |
Uno o più |
0..* |
Zero o più |
1..2 |
Uno o due |
Importante |
---|
Per un'ulteriore elaborazione:
|
Le definizioni seguenti si riferiscono ai termini utilizzati in tutto questo argomento:
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 che può essere costituita 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.
Sistemi con più processori fisici o sistemi con processori fisici che dispongono di più core e/o Hyper-thread consentono al sistema operativo di eseguire più attività simultaneamente. Ogni thread di esecuzione viene visualizzato come un processore logico. Ad esempio, se si dispone di un computer che dispone di due processori quad core con l'Hyper-Threading abilitato e due thread per core, si dispone di 16 processori logici: 2 processori x 4 core per processore x 2 thread per core. Vale la pena notare che:
La capacità di calcolo di un processore logico da un solo thread di un core con l'Hyper-Threading è inferiore alla capacità di calcolo di un processore logico da quello stesso core con l'Hyper-Threading disabilitato.
Tuttavia, la capacità di calcolo dei 2 processori logici nel core con l'Hyper-Threading è maggiore della capacità di calcolo dello stesso core con l'Hyper-Threading disabilitato.
A partire da SQL Server 2012, ogni edizione di SQL Server dispone di due limiti di capacità di calcolo:
Un numero massimo di socket (uguale al processore fisico o al socket o al pacchetto del processore).
Un numero massimo di core come riportato dal sistema operativo.
Questi limiti si applicano a una sola istanza di SQL Server. Rappresentano la capacità di calcolo massima che verrà utilizzata da una sola istanza. Non vincolano il server sul quale potrebbe essere distribuita l'istanza. Infatti la distribuzione di più istanze di SQL Server sullo stesso server fisico è un modo efficiente di utilizzare la capacità di calcolo di un server fisico con più socket e/o core dei limiti di capacità riportati di seguito.
Nella tabella seguente vengono specificati i limiti della capacità di calcolo per una sola istanza di ogni edizione di SQL Server 2012:
SQL Server Edition |
Capacità di calcolo massima utilizzata da una sola istanza (Motore di database di SQL Server) |
Capacità di calcolo massima utilizzata da una sola istanza (AS, RS) |
---|---|---|
Enterprise Edition: Core-based Licensing1 |
Valore massimo del sistema operativo |
Valore massimo del sistema operativo |
Sviluppatore |
Valore massimo del sistema operativo |
Valore massimo del sistema operativo |
Copia di valutazione |
Valore massimo del sistema operativo |
Valore massimo del sistema operativo |
Business Intelligence |
Limitato a meno di 4 socket o 16 core |
Valore massimo del sistema operativo |
Standard |
Limitato a meno di 4 socket o 16 core |
Limitato a meno di 4 socket o 16 core |
Web |
Limitato a meno di 4 socket o 16 core |
Limitato a meno di 4 socket o 16 core |
Express |
Limitato a meno di 1 socket o 4 core |
Limitato a meno di 1 socket o 4 core |
Express with Tools |
Limitato a meno di 1 socket o 4 core |
Limitato a meno di 1 socket o 4 core |
Express with Advanced Services |
Limitato a meno di 1 socket o 4 core |
Limitato a meno di 1 socket o 4 core |
1 La licenza basata su Enterprise Edition con Server + Licenza CAL (Client Access License) (non disponibile per nuovi contratti) è limitata a un massimo di 20 core per l'istanza di SQL Server. Non sono previsti limiti nel modello di licenza server basato su core.
In un ambiente virtualizzato, il limite della capacità di calcolo è basato sul numero di processori logici non core, perché 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 Hyper-Thread per core contiene 32 processori logici con l'Hyper-Threading abilitato ma solo 16 processori logici con l'Hyper-Threading disabilitato. È possibile eseguire il mapping di questi processori logici alle macchine virtuali sul server con il caricamento del calcolo delle macchine virtuali su quel processore logico di cui si è eseguito il mapping in un processore fisico nel server host.
È necessario disabilitare l'Hyper-Threading quando le prestazioni per processore virtuale sono importanti. È possibile abilitare o disabilitare l'Hyper-Threading utilizzando una impostazione BIOS per il processore durante l'impostazione del BIOS, ma è in genere un'operazione con ambito server che avrà un impatto su tutti i carichi di lavoro in esecuzione sul server. In tale situazione potrebbe essere consigliabile dividere i carichi di lavoro che saranno in esecuzione negli ambienti virtualizzati da quelli che beneficeranno del miglioramento delle prestazioni dell'Hyper-Threading in un ambiente fisico del sistema operativo.
Vedere anche
Riferimento
Edizioni e componenti di SQL Server 2012
Specifiche di capacità massima per SQL Server