Man*_*oon 10 sql-server windows configuration resource-governor
我有一台运行 SQL Server 实例的物理服务器。
我注意到这个服务器经常以 100% 的 CPU 使用率运行。
我的 IT 团队对此并不满意,并建议我们为操作系统保留 32 个内核中的 2 个。
这很好用,现在最大使用峰值略低于 90%。此外,不再报告来自不同用户的缓慢数据检索。
是否有任何理由不以这种方式使用 WSRM(Windows 系统资源管理器)而不是 SQL 资源调控器?
Geo*_*ios 15
有什么理由不使用您定义的方法吗?绝对地。
想象一下你买了一辆车——当你达到 50MPH 时,发动机开始过热。您对这种情况的反应是人为地将汽车限制在 49 英里/小时,还是找出发动机的故障所在?
为什么你要把你的车限制在 49 英里每小时?制造商表示它可以以 80 英里/小时的速度行驶——你喜欢把车开得很快,所以你想让它达到这个速度——如果不是因为那个该死的过热问题。
你买的车也非常非常贵。每个发动机气缸都需要最大限度地利用,这样您就不会浪费这笔钱!
通过人为地限制 SQL Server 对 CPU 的访问,您会错失性能。您可能通过确保 CPU 可供操作系统使用来暂时解决性能问题,但您还没有回答真正的问题 -为什么 SQL Server 使用 100% 的 CPU?
我的建议如下:
找出真正的问题是什么,然后解决它。不要用实际上是杂乱无章的东西来掩盖问题。当服务器的工作负载自然随着增长而增加时,这个问题将再次出现并让您感到沮丧。
作为临时修复,资源调控器可用于降低 CPU 使用率,直到您发现真正的问题。
Jos*_*ell 11
Erik Darling在对您的问题的评论中提到了不使用 WSRM 的最大实际原因:
...在其他进程中 CPU 使用没有相互限制。SQL Server 可能不会使用这两个内核,但其他东西可能会使用其他 30 个 SQL Server 正在使用的内核。这是一个废话,真的。
如果这对你有用,那就坚持下去——我们都很忙,你只能在任何给定的问题上花这么多时间。在理想的解决方案是修复推动的CPU的用户应注意的问题(在他的乔治盖点的基础查询/问题的出色答卷)。
埃里克接着说
另外,您需要为它们支付 SQL Server 许可费用。
从业务的角度来看,这可能是 WSRM 交易中最糟糕的部分 - 您要为 2 个明确未使用的核心支付每个核心的许可费用。在撰写本文时,桌上还剩下 3000 美元或 14000 美元(取决于标准版与企业版)。