windows服务器部分进程CPU占用过高缓解方法

我们公司的WSUS服务器出现问题。
这台Windows Server 2 01 6 ,I7 -8 7 00 六核十二线程,2 4 GB内存看起来很强大,但是一到自动同步的时候,sqlserver.exe进程就疯狂占用CPU。
我查了一下,是1 00%。
当监控平台提醒我们的时候,我们的心猛地一跳。

当时我不太明白,也不知道官方的解决方案。
我们要做的第一件事就是寻求建议以减轻恐怖。
首先我们利用WSUS控制台的同步功能找到占用CPU的sqlserver.exe。

对于超过6 00台PC的这些客户端,我们只能将服务日志限制为6 个线程(对应二进制的1 1 1 1 1 1 和十六进制的FF),这样最多占用5 0%的CPU,而其余线程保留给其他服务。
总体CPU使用率可以保持在6 0-7 0%,这是很难实现的。

然后用管理员权限下执行这样一条命令的测试权限来监控实际进程中序列3 F、7 F、FF的个数,使这个限制生效。
另外这里我建议大家在每天自动同步之前(比如8 点)执行限制命令。
我们可以在D:\WSUS\wsus.ps1 中创建一个文件,写入限制命令,并配置调度程序。

不要忘记勾选“无论用户是否登录都窃取”和“以最大权限运行”,这样定时任务才能顺利执行。
安装完成后,我们又进行了一次同步测试。
这次我们发现sqlserver.exe服务的CPU占用率居然得到了有效的控制。

在日常维护的时候我们也要努力及时规划大而及时的计划,这样才能更好的维护服务器的性能。
说实话,这件事确实很烦人,不过还好有解决办法。

程序猿是如何解决SQLServer占CPU100%的

排序消耗CPU最多,占9 4 %。
如何优化:在排序字段上创建索引。
确认:查看执行计划,Sort消失,CPU出现下降。

Count()语句由于全表扫描导致CPU使用率高。
如何优化:为过滤字段创建包含索引。
OK:执行计划中没有表扫描,您将看到CPU减少。

实用提醒:为了减少CPU消耗,请在关键查询字段上创建索引。