SQL SERVER?CPU问题定位与解决
作者:SQL专家云 发布时间:[ 2017/2/9 10:54:02 ] 推荐标签:数据库 SQL Server
步骤4.CPU 问题分析与解决(特殊排查步骤)
持续很高
持续很高很可能是由于几条不优化语句频繁运行,或大面积不优化语句运行。处理此类问题一般需要分阶段处理。
通用步骤中调整参数,大量创建缺失索引后。重新收集分析。如果依然持续很高要跟踪系统高峰时段具体运行的语句,降低语句的资源消耗。并同步分析压力的来源是否仍然有大量不优化的语句,或是cpu真的不能支撑业务(参见cpu真高)。
规律波动
如果你是系统维护人员,看到类似这样的CPU数据指标,如果你还不能有一些思路,请你好好熟悉下你的系统。
这张图很清晰地反映出系统每半小时一次的CPU升高,那么别忙着去找对应时间点的语句,我们少要好好想一下,系统中有什么操作半小时执行一直?SQL JOB?计划任务?前台定时处理?等等等
这个规律的定时处理是否有异常?是否近有什么改动?执行的结果是不是和你想的一样?
也许问题这么清晰的定位了......
突然彪高
CPU突然飙高可能是偶然的现象,也许你可以认为没有关系,但当你判断为偶然之前,请做过下面的分析:
· 彪高的时间点运行什么语句,是否异常
· 分析过系统日志,CPU飙高时间点是否有异常
· 检查服务器上有什么特殊应用
· 检查了数据库状态
· 马上开启监控为下一次突发情况的到来做好准备
排除上述异常,有可能的原因是数据库中,在那一刻有一个或多个语句运行异常,或非常不优化。如果这情况真的因为语句问题,而且只出现一次,那么这可能不是问题,我们尽量找到当时的语句,查看问题。
找到对应的时间点看看到底是什么语句在运行
对这条语句进行分析到底是为什么!
CPU 真高
经过各种分析优化,如果依然CPU压力明显,真心是硬件不能支撑业务了,那么我们要选择更高大上的方式了,比如修改程序设计垂直/水平拆分,添加硬件,读写分离分担压力,组建集群负载均衡等等手段......
总结:对于CPU压力的解决,大部分的用户可以通过调整并行度和系统语句的优化来解决。
另外对系统的监控和分析在诊断问题及解决问题中起到至关重要的作用。
在下结论前一定要经过仔细的分析研究,一个想当然的决定可能造成严重的影响。
你的系统真的需要加硬件,或高大上的方案么?
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11