我最近升级了我的 SQL Server 2014 硬件。CPU 配置文件看起来很奇怪。我有 24 个 CPU,所有 CPU 在线可见,MAXDOP 为 0。SQL CPU 使用率达到 60% 的峰值并且不会超过这个值,尽管查询是高度 CPU 密集型的,并且大部分处于运行/可运行状态。我检查了会话日志转储,总请求时间仅略高于 CPU 时间,因此排除了 io 等待等。还检查了 OS CPU 使用率跟踪仅略高于 SQL CPU 使用率。想知道为什么 CPU 没有被充分利用。以前的硬件有 16 个 CPU 并且过去饱和度约为 95%
一些东西:
检查许可,根据版本和您的许可方式,它可能会忽略一些额外的内核。
可能是您的负载无法有效地使用更多内核。对任何语句使用多个内核并不一定会使其更快,事实上,由于拆分数据和重新组合输出的工作,它可能会使它们变慢,因此处理引擎可能根本看不到使用更多内核的优势现在的核心。如果您的一般工作负载是它正在运行大约 16 个进程,而它认为不会从多线程中受益,那么它只会使用大约 16 个内核的 CPU 能力。
您可能会遇到之前被 CPU 瓶颈掩盖的 IO 瓶颈。
这些内核中的每一个都可能比之前芯片中的每一个都更强大,如果您遇到 IO 瓶颈,这将进一步降低可能的峰值 CPU 使用百分比。
如果您的工作负载涉及对与 CPU 缓存(大型数据库中的大多数对象都将是)但与机器的 RAM 相比较大的对象进行大量表/索引扫描,那么您可能会遇到内存带宽瓶颈而不是 IO 瓶颈。
最后,虽然也许是最重要的:真的有什么东西太慢了吗?可能是您的工作负载此时根本不需要更多的硬件能力。
| 归档时间: |
|
| 查看次数: |
234 次 |
| 最近记录: |