位置: 编程技术 - 正文

SQL Server内存遭遇操作系统进程压榨案例分析(sql server 内存管理)

编辑:rootadmin
场景:

  最近一台DB服务器偶尔出现CPU报警,我的邮件报警阈(请读yù)值设置的是%,开始时没当回事,以为是有什么统计类的查询,后来越来越频繁。

探索:

  我决定来查一下,究竟是什么在作怪,我排查的顺序如下:

  1、首先打开Cacti监控,发现最近CPU均值在某天之后骤然上升,并且可以看到SystemProcessor Queue Length 和 sqlservr%ProcessorTime 也在显著的变化。

  

  2、从最容易入手的低效SQL开始,考虑是不是最近业务做了什么修改?连接到该SQL实例,打开活动监视器,展开“最近耗费大量资源的查询”,并CPU时间倒序,在这里并未发现有即时的耗费资源的查询。据个人经验,这里的值如果是4位数,分钟内执行次数3位数,一般的服务器CPU大概就%以上,如果cpu时间那里是5位数,且分钟内执行次数也很高,几百次以上,那CPU一般就会不淡定了。图片仅为演示

  

  3、没有耗资源的SQL,这是DBA最不愿意看到的结果,因为也许,SQL Server受到了来自内部或者外部的压力,使得自己花费了过多的时间去处理与操作系统的沟通去了。SQL Server常见的非查询低效类的性能问题,绝大多数都来自于内存或者硬盘,而这两者有的时候需要同时研究对比基线,才能确定谁是因,谁是果。在这里,我们首先查看SQL Server内存使用情况,当打开性能计数器时,我和我的小伙伴们都惊呆了……安装了G内存的数据库,SQL Server的TargetMemory仅有多兆!这其中StolenPage还占用了多兆,数据库DataPage仅有多兆的内存可供使用,Oh,Shit!虽然我很不想用“去哪了”这三个字,但是“我的内存去哪了“?同时我们也注意到PageLifeExpectancy值只有(一个内存充足的服务器,这个值至少应该是上W的),而很早之前我们津津乐道的"Cache Hit Ration"却仍然保持一个比较高的水准! 这个案例告诉我们,缓存命中率这个性能计数器很多时候说明不了什么问题。

  

  4、OK,既然这样,是谁占用了本该属于我亲爱的SQL Server的内存呢?我们继续,打开Wiindows任务管理,选定进程选项卡,点击显示所有用户进程,发现svchost.exe占用了绝大多数的G内存!

  

  5、那svchost.exe又是个什么东西呢?我们下面就用到ProcessMonitor这个工具了,打开后自动加载所有Wiindows进程,按内存排序后,鼠标移至svchost.exe进程上,显示为Remote Registry服务。

  

  6、查到这里,事情已经有了一定的眉目,这个多半是windows内存泄露Bug,遂google关键词: windows server r2 remote registry memory leak

  找到如下链接:  果然:Assume that you query performance counters on a remote computer by using an application on a computer that is running Windows 7 or Windows Server R2. In this situation, the memory usage of the Remote     Registry service on the local computer increases until the available memory is exhausted.

解决方法:

  1、重启服务器,安装hotfix

  2、因为重启服务器会影响到业务,所以我在想重启RemoteRegistry服务,应该也能暂时解决问题,这个bug应该是在某种固定情景下发生的。

  随后,在合适的时间,我重启了这个服务,SQL Server的TargetMemory重新恢复到多G,CPU也正常了,目前为止该问题未再发生。

后续跟进:

  DBA的工作,说难也难,说容易也容易,发现问题,解决问题还不够,我们还要意识到自己的欠缺,在本案例中,我之前并没有建立起SQL Server内存的监控,所以没有在第一时间就发现病情的严重性,好在该服务器并未承担重要业务,否则后果不堪设想,说不定早就崩溃过了,后怕之处在于,如果崩溃了,自然要重启服务器,到那个时候,我们连第一现场都没有,当leader问起来,我又该使劲挠头了。

  该事件之后,我建立起了SQL Server内存的监控,1天后,我从新的监控数据中,又发现了一台服务器出现相同的问题!我很庆幸,不是庆幸服务器没宕机,而是庆幸我做对了。

  附一张内存监控图,可以看到服务重启之后,SQL Server的Total Pages一直在上升,并逐渐稳定,Page life expectancy也在变得越来越大,CPU也能指示病症已消除,我很欣慰。

  

  

总结:

  服务器在出现性能问题前,大部分是提前有一些征兆的,尤其是内存泄露,因为内存是一点点被压榨掉的,最后到达一个极限时,SQL Server就会突然Crash掉,然后只留给你一个dump,微软就笑了。有经验的大夫应该从日常的腰酸背痛中看出一些端倪,然后进一步分析,提前预知重大疾病的发生,这就是DBA的价值。这个案例,告诉我,重视服务器异常的细节变化,才能做到防患于未然。

推荐整理分享SQL Server内存遭遇操作系统进程压榨案例分析(sql server 内存管理),希望有所帮助,仅作参考,欢迎阅读内容。

SQL Server内存遭遇操作系统进程压榨案例分析(sql server 内存管理)

文章相关热门搜索词:sql server 内存,sql server2019内存,sql server吃内存不会释放,sql server2019内存,sql server 内存管理,sqlserver内存占用过高,sql server吃内存不会释放,sqlserver内存占用过高,内容如对您有帮助,希望把文章链接给更多的朋友!

SQL Server页类型汇总+疑问汇总 SQLServer中包含多种不同类型的页,来满足数据存储的需求。不管是什么类型的页,它们的存储结构都是相同的。每个数据文件都包含相当数量的由8KB组

MSSQL报错:参数数据类型 text 对于 replace 函数的参数 1 无效的解决办法 但是我们可以换一种方法解决这个问题。下面就来分析下解决办法。对text或ntext类型的数据在查询中不能进行字符串操作。这时用得最多的是把text当作v

积分获取和消费的存储过程学习示例 1.GM_JF客户账户积分表2.GM_JF_DETAIL客户账户积分消费记录3.GM_JF_ACTION_RULES积分动作规则表4.GM_JF_GOODS_RULES积分商品规则表--===============测试========================

标签: sql server 内存管理

本文链接地址:https://www.jiuchutong.com/biancheng/320410.html 转载请保留说明!

上一篇:sql带分隔符的截取字符串示例(sql按分隔符截取)

下一篇:SQL Server页类型汇总+疑问汇总(sqlserver2000分页)

  • 进项税转出大于进项税,加计抵减怎么计算
  • 进项税额转出的情况
  • 差旅费抵扣进项税政策201939号文件
  • 资本公积和盈余公积怎么提取
  • 发票验旧日期是什么意思
  • 怎么查对方一个月去了什么地方
  • 会计忘记申报税款会有什么影响
  • 员工超过万人公司
  • 个体营业执照从哪里查询
  • 金蝶财务软件固定资产模块固定资产调拨
  • 股权增值转让的财税处理
  • 计划成本法领用原材料会计分录
  • 结构性存款质押 叫停
  • 分包管理费取费标准
  • 企业将存货低价出售处理要如何做会计处理?
  • 营改增后取得土地转让
  • 砂子开票税率
  • 增值税税率征收率变化时间节点
  • 企事业承包承租经营所得税率是多少
  • 软件服务类企业
  • 对方开具红字发票过来怎么做进项税转出
  • 合作建房分配的房屋
  • 交通定额发票税率
  • 税务局减免的税金会计分录
  • 耗材会计分录做账怎么做
  • 外贸出口企业的租金能退税吗
  • 代开的发票没有人名行不行?
  • php页面传值
  • win11怎么更改系统日期
  • win7为什么显示多重网络
  • 移动临时文件
  • 金融企业贷款逾期怎么办
  • Skype.exe - Skype是什么进程 有什么用
  • 契税计税依据及计算方式
  • 个体户变更为有限公司成立时间
  • 实物资产的管理
  • 长期股权投资凭证
  • yolov3图像识别
  • Laravel5中Cookie的使用详解
  • 工商变更后税务会自动变更吗
  • 2021mathorcupc题答案
  • 制造费用主要核算项目
  • 发票取得取得售卡方公司开具的增值税专用发票
  • Linux下DedeCMS/织梦CMS安全设置教程
  • ps怎么用魔棒选区
  • 注册资本与注册资金、出资额的区别
  • 小微企业所得额如何计算
  • 增值税发票开具规定
  • 哪些税费可以抵扣
  • 富文本word
  • 以前年度多计提增值税
  • 库存盘点问题及改善对策
  • 开立一般户需要法人到场吗
  • 公司增资该怎么做账
  • 改签机票要收费
  • 企业银行存款的利息收入计入财务费用的借方A对B错
  • 有形动产租赁服务属于现代服务吗
  • 账务处理的种类有哪些
  • 固定资产清理后折旧怎么处理
  • 公司购买的空调
  • 买公司的钱计入什么科目
  • 公司食堂招待客户,客户付了钱怎么入账
  • 本单位职工可以在本单位兼职吗
  • 生产成本明细账怎么填图片
  • sqlserver关键字附近有语法错误
  • 分页存储过程包括
  • 如何在百度上发布自己的广告
  • 电脑删除ie后怎么恢复
  • windows预体验版本遇到问题
  • y400加装固态硬盘教程
  • win10快速隐藏窗口
  • 图文详解地理图册电子版
  • js 读取 excel
  • jquery 设置和返回元素属性
  • css行与行之间的间距怎么调
  • 用python写多线性模型
  • 批处理系统定义
  • unity 1
  • python序列结构总结
  • 上海税务网上报税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设