SQL Server 2008 DB增加内存后CPU持续100%

一懒无鱼 2016-10-18 10:01:50
环境: Windows Server 2008R2/SQL Server 2008R2 SP1
状况: 结合之前监控的Performance Count(Buffer Cache Hit Ratio/Memory Grants Pending/Page life expectancy)来看,Memory不够用了
原来内存状况: Server内存16G,SQL Server Max Server Memory为14G (物理内存4GB*4)
原来CPU状况: CPU平均值60%

升级后内存状况: Server内存32G,SQL Server Max Server Memory为28G(物理内存8GB*4)
升级后CPU状况: CPU持续100%

发现问题后调整: 将SQL Server Max Server Memory设定为14G,情况依旧, CPU持续100%.

解决问题的方法: 将Server内存还原到16GB(4GB*4), CPU下降到60%.

想请问下:
1. 为何增加内存后, CPU会持续飙升到100%?
2. 升级后将SQL Server Max Server Memory设定为14G,为什么CPU不会下降?将内存还原到16G就CPU就下降了?
3. 这种情况下要如何升级硬件-内存?


...全文
651 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
luhr 2016-10-22
  • 打赏
  • 举报
回复
没有升级内存,CPU60% 我觉得这个时候应该把CPU占用多的拉出来优化下。 升级内存后CPU更高,我觉得还是继续看CPU占用高的SQL或者锁,阻塞。大型事物这些。 因为目的不是要找为什么升级内存后CPU更高。就是要服务器性能稳定吧。 对了,升级内存后,SQL内存占用变化好像没看到楼主说啊
一懒无鱼 2016-10-21
  • 打赏
  • 举报
回复
引用 11 楼 OrchidCat 的回复:
lz 监控一下, 如果在高峰时段CPU飙高, 过了之后, CPU稳步下降的话, 实际上总体来说, 加内存这个事儿, 应该是正常的.

另外, 还可以看一下响应速度问题. 之前没添加内存时候的响应速度(同样用户量,同样业务处理,单位时间)跟添加后进行对比.
毕竟添加内存,我们还是考虑要获取更大的收益的.

感谢大神全面而又准确的回答!
CPU达到100%的时间基本上就是从上班时间到下班时间(8:00-17:00),按照您的说法,既然CPU的使用率上去了,理论上来说用户的体验应该是变快了,但是用户反应是变慢了(这个地方我比较疑惑些).基于这种情况,才还原回原来16GB的状况.下图是当时CPU使用的状况图:

当时CPU 100%的时候,收集了半个小时的Profiler进行了分析,并没有很明显的看到哪条SQL语句占用了特别多的CPU,下图为Profiler分析的结果图:

请大神帮忙看看这张图,还是说我分析的角度不对.谢谢!
那现在分析下来,应该说内存升级,相对应的CPU也要进行升级,需要匹配才可以,对吧?
LongRui888 2016-10-18
  • 打赏
  • 举报
回复
引用 8 楼 yangkaikb 的回复:
下图为CPU变化的监控图: [quote=引用 7 楼 roy_88 的回复:] 查看是否有什么自动应用程序或作业的执行频繁或影响大数据大的操作 SQL SERVER主要是占内存,CPU通常应用程序占用
还原硬件内存之后CPU立即就下降了,业务层面并没有发生改变.还原内存的时间为今天上午9:24左右,还原之后CPU立马就下降了: [/quote] 那很有可能就是内存的问题了
一懒无鱼 2016-10-18
  • 打赏
  • 举报
回复
下图为CPU变化的监控图:


引用 7 楼 roy_88 的回复:
查看是否有什么自动应用程序或作业的执行频繁或影响大数据大的操作
SQL SERVER主要是占内存,CPU通常应用程序占用

还原硬件内存之后CPU立即就下降了,业务层面并没有发生改变.还原内存的时间为今天上午9:24左右,还原之后CPU立马就下降了:
中国风 2016-10-18
  • 打赏
  • 举报
回复
查看是否有什么自动应用程序或作业的执行频繁或影响大数据大的操作 SQL SERVER主要是占内存,CPU通常应用程序占用
一懒无鱼 2016-10-18
  • 打赏
  • 举报
回复
引用 3 楼 roy_88 的回复:
--从以下去分析,原因都没找出来讲再多都没用 占看系统资源管理器—查看占用资源应用程序 用SQL PROFILER追踪 查看进程是否连接数过多造成
这台Server就是用来跑SQL Server的,资源管理器里面看到占用CPU的是SQL Server进程. 从AP层面来说,并没有发生变化.变化的就是增加了内存.
一懒无鱼 2016-10-18
  • 打赏
  • 举报
回复
引用 2 楼 xxfvba 的回复:
CPU 和内存之间有冲突?不是同一牌子的内存?
非正常上班时间段的CPU并没有飙高,正常上班时间CPU就发生了飙高. 用的服务器是HP BL460, 品牌都是HP的.
一懒无鱼 2016-10-18
  • 打赏
  • 举报
回复
引用 1 楼 yupeigu 的回复:
首先,cpu升高,貌似看上去和内存增加有关,但是还必须要监控一下看看,到底是哪些 会话在使用cpu,哪些sql消耗了cpu资源。


从抓到CPU飙高的时间段的Profile来看,并没有看到占用特别高的SQL.下图为收集了半个小时Profile的分析结果:
中国风 2016-10-18
  • 打赏
  • 举报
回复
--从以下去分析,原因都没找出来讲再多都没用 占看系统资源管理器—查看占用资源应用程序 用SQL PROFILER追踪 查看进程是否连接数过多造成
xxfvba 2016-10-18
  • 打赏
  • 举报
回复
CPU 和内存之间有冲突?不是同一牌子的内存?
LongRui888 2016-10-18
  • 打赏
  • 举报
回复
首先,cpu升高,貌似看上去和内存增加有关,但是还必须要监控一下看看,到底是哪些 会话在使用cpu,哪些sql消耗了cpu资源。
Mr_Nice 2016-10-18
  • 打赏
  • 举报
回复
lz 监控一下, 如果在高峰时段CPU飙高, 过了之后, CPU稳步下降的话, 实际上总体来说, 加内存这个事儿, 应该是正常的. 另外, 还可以看一下响应速度问题. 之前没添加内存时候的响应速度(同样用户量,同样业务处理,单位时间)跟添加后进行对比. 毕竟添加内存,我们还是考虑要获取更大的收益的.
Mr_Nice 2016-10-18
  • 打赏
  • 举报
回复
引用 楼主 yangkaikb 的回复:
环境: Windows Server 2008R2/SQL Server 2008R2 SP1 状况: 结合之前监控的Performance Count(Buffer Cache Hit Ratio/Memory Grants Pending/Page life expectancy)来看,Memory不够用了 原来内存状况: Server内存16G,SQL Server Max Server Memory为14G (物理内存4GB*4) 原来CPU状况: CPU平均值60% 升级后内存状况: Server内存32G,SQL Server Max Server Memory为28G(物理内存8GB*4) 升级后CPU状况: CPU持续100% 发现问题后调整: 将SQL Server Max Server Memory设定为14G,情况依旧, CPU持续100%. 解决问题的方法: 将Server内存还原到16GB(4GB*4), CPU下降到60%. 想请问下: 1. 为何增加内存后, CPU会持续飙升到100%? 2. 升级后将SQL Server Max Server Memory设定为14G,为什么CPU不会下降?将内存还原到16G就CPU就下降了? 3. 这种情况下要如何升级硬件-内存?
参考. 想请问下: 1. 为何增加内存后, CPU会持续飙升到100%? 增加内存后,单位时间内,可以由CPU处理的数据序列就变多了.(等待的序列变少了),那么CPU就有更多的事儿可以做. 自然就升上去了.lz可以认为,内存增加了, CPU的利用率是上升了. 但飙到100% ,还是跟实际业务相关.(lz的CPU到100%的状况持续时间是大概多久? 是否跟实际业务的高峰相关) ,这个需要走一遍sql server 的监控流程 2. 升级后将SQL Server Max Server Memory设定为14G,为什么CPU不会下降?将内存还原到16G就CPU就下降了? 跟上面实际是一个事儿. 内存增加后,单位时间内提交给CPU的处理序列变多了. 即便是将SQL Server Max Server Memory设定为14G,单位时间内也比之前的环境更加有效率. 所有CPU值没有下降. 3. 这种情况下要如何升级硬件-内存? 关于选型, 建议lz参考看看redgate sql server hardware ,更多的经验还是根据需求从实践中摸索的.

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧