SQL Server不使用服务器硬件上的所有CPU核心/线程

时间:2011-11-23 13:49:43

标签: sql-server-2008 windows-server-2008

升级我们的SQL Server硬件之后,我们在Windows任务管理器中注意到SQL实例只使用了一半可用的“线程”(参见屏幕截图)Task Manager

服务器具有以下硬件和软件:

  • Windows 2008 R2 Enterprise 64位SP1
  • Intel Xeon E7-4870 - 4个处理器(40个内核,80个线程)
  • Microsoft SQL Server 标准版(64位)10.0.4064

正在运行select cpu_count from sys.dm_os_sys_info会返回40。

操作系统可以看到所有80个线程。 SQL Server Standard Edition supports 4 Physical CPUs这就是我们在这里所拥有的。

为什么只使用服务器处理能力的一半?

我们在两台服务器上拥有相同的硬件和软件,它们都表现出相同的行为。

1 个答案:

答案 0 :(得分:1)

你的亲和力桅杆设置为什么?您可以通过查询找到:

exec sp_configure 'show advanced options', 1
go
reconfigure
go
exec sp_configure 'affinity mask'
go

我的猜测是你没有使用一半的CPU,向你展示这些结果。

如果你有四个处理器,你可以通过将affinity mask设置为15来使用所有处理器,如下所示:

exec sp_configure 'affinity i/o mask', 0
go
reconfigure with override
go

exec sp_configure 'affinity mask', 15
go
reconfigure with override
go

值15(二进制00001111)允许所有四个处理器上的SQL Server线程。


Reference

相关问题