SQL Server non utilizza tutti i core / thread della CPU


15

Dopo aver aggiornato l'hardware del nostro SQL Server, nel Task Manager di Windows abbiamo notato che l'istanza SQL utilizza solo la metà dei thread disponibili:

Task Manager.

Il server ha il seguente hardware e software:

  • Windows 2008 R2 Enterprise 64 bit SP1
  • Intel Xeon E7-4870 - 4 processori (40 core, 80 thread)
  • Microsoft SQL Server 2012 Enterprise Edition (64 bit)

La corsa select cpu_count from sys.dm_os_sys_inforestituisce 40.

Il sistema operativo vede tutti gli 80 thread.

Perché viene utilizzata solo metà della potenza di elaborazione del server?

Abbiamo lo stesso hardware e software su due server ed entrambi presentano lo stesso comportamento.

Risposte:


23

Nel registro degli errori di SQL Server, dovrebbe essere indicato il motivo. L'ho trovato su un sistema cliente (in realtà basta incollare il messaggio per Google juice):

SQL Server ha rilevato 4 socket con 8 core per socket e 16 processori logici per socket, 64 processori logici totali; utilizzando 40 processori logici basati sulla licenza di SQL Server. Questo è un messaggio informativo; Non è richiesta alcuna azione da parte dell'utente.

Ho avuto la probabile spiegazione da qui :

Per i clienti con Software Assurance su licenze esistenti di SQL EE Server (o accesso a loro ai sensi dei loro attuali Accordi Enterprise durante il periodo) è stata creata una versione di Enterprise Edition per consentire loro di aggiornare a SQL Server 2012. Questa versione ha restrizioni tecniche che limitano un'istanza a utilizzando solo 20 core del processore (40 thread CPU con Hyperthreading).

Riepilogo: nel registro degli errori, l'edizione verrà riportata come Enterprise Editiono Enterprise Edition: Core-based Licensing. Se viene indicato il primo, come nel caso del sistema clienti di cui sopra, sarà necessario ottenere una licenza basata su core per utilizzare tutti i core disponibili.

Se questo non è il caso e sei già autorizzato per tutti i core, controlla le impostazioni della maschera di affinità, in particolare se sono state impostate e l'hardware sottostante è stato aggiornato.


Abbiamo avuto un problema simile. Costruiamo una VM con 1 socket e 32 core. Sql riconoscerebbe solo 8 CPU. Passiamo a 8 socket e 4 core il problema è andato via. Dove eseguivamo editon aziendali sql 2008r2 su Windows 2008r2.
user3799984

Ho avuto lo stesso problema con una versione standard. Avevamo usato 8 prese e non avrebbe usato il resto. Tutto quello che dovevamo fare è cambiare la VM e configurare 4 socket 2 core.
Nicolas de Fontenay,

7

Cerca in ERRORLOG dal primo avvio di SQL Server. Ti dirà quante CPU sta usando e probabilmente perché. Se riesci a pubblicare il file ERRORLOG da qualche parte, sarà utile vedere cosa sta succedendo.


3

L'ho visto in un altro post di Ajmer Dhariwal:

Anche se si dispone dell'edizione Enterprise, se il modello di licenza applicato è basato su licenza CAL + (Server + Client Access), il server è limitato a 20 core fisici per istanza

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.