Entrei no sistema de novos clientes e executei o sp_blitz para ver o que está tremendo. Ele relata que " CPU Schedulers Offline ", que é novo para mim.
Alguns núcleos de CPU não estão acessíveis ao SQL Server devido a problemas de mascaramento ou licenciamento de afinidades.
É justo, eu executo a consulta base
SELECT
DOS.is_online
, DOS.status
, DOS.*
FROM
sys.dm_os_schedulers AS DOS
ORDER BY
1;
Que informa que eu tenho 8 definido como VISIBLE OFFLINE, 43 para online. Que eu saiba, ninguém neste cliente teria intencionalmente definido qualquer afinidade de CPU.
Decidi ver se conseguia descomprimir. Quando olho para a janela de propriedades, vejo 40 processadores disponíveis e nenhum deles definido para ter afinidade.
Por que há 40 mostrando ainda 43 entradas nos dm_os_schedulers em que is_online é verdadeiro também parece curioso. O cpu_id dos 8 offline é de 32 a 39.
O sys.configurations parece concordar com a afinidade não estar explicitamente
name value value_in_use description
affinity I/O mask 0 0 affinity I/O mask
affinity mask 0 0 affinity mask
affinity64 I/O mask 0 0 affinity64 I/O mask
affinity64 mask 0 0 affinity64 mask
Como não é uma Enterprise Edition, a coisa do avô da CAL não deve ser fator aqui, mas posso fazer essa pergunta amanhã, se necessário
ProductVersion ProductLevel ProductUpdateLevel Edition
11.0.5058.0 SP2 NULL Standard Edition (64-bit)
Ao executar as consultas de diagnóstico de Glenn Berry, esse material pode ser relevante
- Fabricante do sistema: 'Dell Inc.', Modelo do sistema: 'PowerEdge R720'.
- CPU Intel (R) Xeon (E5) E5-2680 v2 a 2.80GHz
Então, o que dá? Sou virtualizado e não sei? Existe algum outro lugar que eu deveria procurar para determinar por que o SQL Server não pode usar algumas das CPUs?
Artigos de referência
Uma lista de artigos que li, mas claramente não compreendia o suficiente para responder à minha própria pergunta