Limiti della capacità di calcolo per edizione di SQL Server
Questo argomento illustra i limiti di capacità di calcolo per diverse edizioni di SQL Server 2014 e il modo in cui differiscono in ambienti fisici e virtualizzati con processori iperthreaded.
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:
Una macchina virtuale viene allocata per 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 del processore virtuale al processore logico è:
- Uno-a-zero, che rappresenta un processore logico non associato non utilizzato dai sistemi operativi guest.
- Uno a molti, che rappresenta un overcommit.
- Zero-a-molti, che rappresenta l'assenza di una macchina virtuale sul sistema host, pertanto non è utilizzato alcun processore logico dalle VM.
Viene eseguito il mapping di un socket a zero o a più core. Quando il mapping da socket a core è:
- Uno-a-zero, che rappresenta un socket vuoto (alcun chip installato).
- Uno-a-uno, che rappresenta un chip singole-core installato nel socket (molto raro).
- Uno a molti, che rappresenta un multi-core installato nel socket (i valori tipici sono 2,4,8).
Viene eseguito il mapping di un core a uno o due processori logici. Quando il mapping del core al processore logico è:
- Uno-a-uno, l'Hyper-Threading è disabilitato.
- Uno-a-due, l'Hyper-Threading è abilitato.
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.
Ogni edizione di SQL Server ha 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.
La tabella seguente specifica i limiti di capacità di calcolo per una singola istanza di ogni edizione di SQL Server 2014:
Edizione di SQL Server | Capacità di calcolo massima usata da un'unica istanza (motore SQL ServerDatabase) | Capacità di calcolo massima utilizzata da una sola istanza (AS, RS) |
---|---|---|
edizione Enterprise: Licenze basate su core1 | Valore massimo del sistema operativo | Valore massimo del sistema operativo |
Developer | Valore massimo del sistema operativo | Valore massimo del sistema operativo |
Versione 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 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. Questi processori logici possono essere mappati alle macchine virtuali nel server con il carico di calcolo delle macchine virtuali su tale processore logico mappato a un thread di esecuzione nel 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
Edizioni e componenti di SQL Server 2014
Funzionalità supportate dalle edizioni di SQL Server 2014
Specifiche di capacità massima per SQL Server
Guida introduttiva all'installazione di SQL Server 2014