Me conecté a un nuevo sistema de clientes y ejecuté sp_blitz para ver qué estaba temblando. Informa que " CPU Schedulers Offline ", que es nuevo para mí.
SQL Server no puede acceder a algunos núcleos de CPU debido a problemas de enmascaramiento o licencias de afinidad.
Justo, ejecuto la consulta base
SELECT
DOS.is_online
, DOS.status
, DOS.*
FROM
sys.dm_os_schedulers AS DOS
ORDER BY
1;
Eso informa que tengo 8 configurados en VISIBLE OFFLINE, 43 en línea. Que yo sepa, nadie en este cliente habría establecido intencionalmente ninguna afinidad de CPU.
Decidí ver si podía desempaquetarlo. Cuando miro la ventana de propiedades, veo 40 procesadores disponibles y ninguno de ellos está configurado para tener afinidad.
Por qué hay 40 que muestran todavía 43 entradas en dm_os_schedulers donde is_online es verdadero también parece curioso. Los cpu_id de los 8 sin conexión son de 32 a 39.
sys.configurations parece coincidir con la afinidad no explícitamente en
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
Esta no es una edición Enterprise, por lo que el abuelo de CAL no debería ser un factor aquí, pero puedo hacer esa pregunta mañana si es necesario
ProductVersion ProductLevel ProductUpdateLevel Edition
11.0.5058.0 SP2 NULL Standard Edition (64-bit)
Al ejecutar las consultas de diagnóstico de Glenn Berry, esto podría ser relevante
- Fabricante del sistema: 'Dell Inc.', Modelo del sistema: 'PowerEdge R720'.
- Intel (R) Xeon (R) CPU E5-2680 v2 @ 2.80GHz
Entonces, ¿qué da? ¿Estoy virtualizado y no lo sé? ¿Hay algún otro lugar que debería buscar para determinar por qué SQL Server no puede usar algunas de las CPU?
Artículos de referencia
Una lista de artículos que leí pero que claramente no comprendí lo suficientemente bien como para responder mi propia pregunta
fuente