使用WSRM限制最大CPU使用率SQL SERVER


10

我有一台运行SQL Server实例的物理服务器。

我注意到该服务器通常以100%的CPU使用率运行。

我的IT团队对此并不满意,建议我们为操作系统保留32个内核中的2个。

效果很好,现在最大使用量峰值接近90%。此外,不再报告从各个用户进行缓慢的数据检索。

是否有任何理由不以这种方式使用WSRM(Windows系统资源管理器),而不是使用SQL资源调控器?


您真的要使用所有CPU吗?为操作系统节省几个内核似乎是审慎的做法,不是吗?在我的工作站上,如果我使用所有内核进行一些运算,那么我的机器就会停顿下来。我总是保留一些内核。在专用于SQL Server的计算机上这也不是一个好习惯吗?
ManInMoon

此服务器上正在运行哪种负载?哪种类型的进程正在使用100%的CPU?这是OLTP还是分析或图形还是?
Max Vernon

@Forrest当您说调优时-您是指SQL Server本身-还是查询/表结构?如果您的意思是SQL Server,请给我链接以查看内容。如果有查询/表,那么我会尽可能优化它们,但是有些用户对设计的意识不强!
ManInMoon

Answers:


14

有没有理由不使用您定义的方法?绝对。

想象一下,您买了一辆汽车,当您达到50MPH时,发动机开始过热。您对这种情况的反应是人为地将汽车限制为49MPH,还是找出发动机故障是什么?

为什么要将车速限制为49MPH?制造商表示,它的驱动速度可高达80MPH-您想快速驱动汽车,以使其达到这一速度-如果不是因为该死的过热问题。

您购买的汽车也确实非常昂贵。每个发动机气缸都需要最大程度地利用,因此您不会浪费金钱!

通过人为限制SQL Server对CPU的访问,您会失去性能。您可能已经通过确保OS可用的CPU暂时解决了性能问题,但是您还没有回答真正的问题- 为什么SQL Server使用100%的CPU?

我的建议如下:

找出真正的问题所在,然后解决。不要用有效的纠缠来掩盖问题。当服务器的工作负载自然地随着增长而增加时,该问题再次出现并打扰您。

作为临时解决方案除非您找到真正的问题否则可以使用资源调控器来降低使用的CPU


11

Erik Darling在对您的问题的评论中提到了不使用WSRM的最大实际原因:

...在其他进程中对CPU的使用没有相互限制。SQL Server可能不会使用这两个核心,但是其他东西可能会使用其他30个SQL Server正在使用的核心。真的,这是胡扯。

如果这对您有用,那就坚持下去-我们都很忙,您只能在任何给定的问题上花很多时间。在理想的解决方案是修复推动的CPU的用户应注意的问题(在他的乔治盖点的基础查询/问题的出色答卷)。

埃里克继续说

此外,您还需要为其支付SQL Server许可费用。

从业务角度来看,这可能是WSRM交易中最糟糕的部分-您要为每个明显不被使用的2个内核支付每内核许可。在撰写本文时,这还剩下$ 3k或$ 14k(取决于Standard vs Enterprise)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.