SQL Server vCPU gebruik controleren

Wanneer je SQL Server installeert op een virtual machine kan het zijn dat je niet optimaal gebruik maakt van het aantal vCPU’s dat is toegewezen. SQL Server Standard zal kijken naar de laagste waarde van 4 sockets of 24 cores.

Voer de volgende SQL Query uit om te controleren of SQL Server alle toegekende vCPU’s kan gebruiken.

DECLARE @OnlineCpuCount int
DECLARE @LogicalCpuCount int

SELECT @OnlineCpuCount = COUNT(*) FROM sys.dm_os_schedulers WHERE status = 'VISIBLE ONLINE'
SELECT @LogicalCpuCount = cpu_count FROM sys.dm_os_sys_info

SELECT @LogicalCpuCount AS 'vCPU assigned to VM', @OnlineCpuCount AS 'vCPU available in SQL',
CASE
  WHEN @OnlineCpuCount < @LogicalCpuCount
  THEN 'NOT OK change your VM socket / core ratio to use more vCPUs '
  ELSE 'OK your VM can use all vCPU cores within SQL server'
END as 'CPU Usage Desc'

Om bijvoorbeeld 8 cores optimaal te gebruiken edit je de VM als volgt, selecteer 8 CPU’s en kies 4, bij Cores per Socket.

Om 12 cores optimaal te gebruiken edit je de VM als volgt, selecteer 12 CPU’s en kies 4, bij Cores per Socket.

Je kunt vervolgens nogmaals de query uitvoeren en dan zie je dat de wijziging succesvol is geweest.