SQLServer因为OS虚拟内存不足而hang住异常解决-锁定内存页 (LPIM)

发布时间:2020-08-13 12:30:03

来源:ITPUB博客

阅读:73

作者:guocun09

异常:

DB: SQL Server2012SP3

OS: Windows2012

一线工程师反应系统访问DB突然卡住了,DBA登录DB检查SQLServer发现DB无法登录,之前SMSS已经连接的session中无法执行任何SQL。服务器CPU使用10%,memory使用达到了99%以上。过了十分钟系统memory自己降低到了90%以下,DB可以访问。

分析:

检查SQLServer error log:

只是在一异常时间段有stack dump的记录,但没有太多有价值的信息

检查windows性能计数器:

异常时间段OS memory确实耗尽

检查windows log:

有虚拟内存不够警告,

sqlserver.exe进程使用28GB(DBA设定的DB最大内存使用量),dllhost.exe进程使用12GB

正好把服务器的32GB+虚拟内存设定的8GB占满!所以报错内存不足!!

解决:

上述dllhost.exe进程使用12GB一定存在问题,此块可能系统层面补丁或病毒相关,已交给系统工程师分析。

但是否有办法在OS内存不足时,DBA通过设定可以不影响到SQL server的正常运行呢?

答案是有的,软微官方提供锁定内存页 (LPIM) 解决方法,通过Windows 策略将确定哪些帐户可以使用进程将数据保留在物理内存中,从而阻止系统将数据分页到磁盘的虚拟内存中。这样即使OS内存不足时对SQL server的影响也会是最小了。

设定:

cmd->gpedit.msc->local computer policy->computer configuration->windows settings->security settings->local policies->user rights assignment-> Lock pages memory中加入添加 SQL Server 启动帐户

至此,锁定内存页 (LPIM)设置完成。

再持续观察一段时间,系统再没有发生系统内存不足SQLServer hang住问题。

------------------------------------------------------------

------------------------------------------

以下附,软微官方文档说明:

https://docs.microsoft.com/zh-cn/sql/database-engine/configure-windows/server-memory-server-configuration-options?view=sql-server-ver15

锁定内存页 (LPIM)

此 Windows 策略将确定哪些帐户可以使用进程将数据保留在物理内存中,从而阻止系统将数据分页到磁盘的虚拟内存中。

锁定内存中的页可以在发生将内存分页到磁盘时保持服务器的响应能力。

已向有权运行 sqlservr.exe 的帐户授予 Windows 锁定内存页 (LPIM) 用户权限时,在

SQL Server Standard Edition 和更高版本的实例中将“锁定内存页”  选项设置为“打开”  。

若要对

SQL Server

禁用“锁定内存页”选项,请为有权运行 sqlservr.exe(

SQL Server 启动帐户)启动帐户的帐户删除“锁定内存页”用户权限  。

设置此选项可实现根据其他内存分配器的请求扩大或缩小内存,不影响

SQL Server

动态内存管理。

使用“锁定内存页”用户权限时,建议按

如上所述,为 max server memory 设置一个上限   。

重要

应仅在必要时设置此选项,即有迹象表明正在换出 sqlservr 进程时。在这种情况下,错误日志将报告错误 17890,类似于以下示例:

A significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: #### seconds. Working set (KB): ####, committed (KB): ####, memory utilization: ##%.

SQL Server 2012 (11.x) 开始,Standard Edition 不需要

跟踪标志 845 来使用“锁定页”。

启用“锁定内存页”

启用“锁定内存页”选项:

“开始” 菜单上,单击

“运行” 。

在“打开”  框中,键入

gpedit.msc

将打开

“组策略” 对话框。

“组策略” 控制台上,展开

“计算机配置” ,再展开

“Windows 设置” 。

展开

“安全设置” ,再展开

“本地策略” 。

选择

“用户权利指派” 文件夹。

细节窗格中随即显示出策略。

在该窗格中,双击“锁定内存页”  。

在“本地安全策略设置”对话框中,添加有权运行 sqlservr.exe (

SQL Server 启动帐户)的帐户  。

数据库服务器禁用虚拟内存,SQLServer因为OS虚拟内存不足而hang住异常解决-锁定内存页 (LPIM)...相关推荐

  1. HANA 数据库备份hang住的解决办法

    今天遇到 HANA 数据库备份hang住的情况.经过查 SAP NOTE 解决,记录一下过程.两个NOTE如下: 2452735 - HANA Backup failing with "[4 ...

  2. orcal 数据库 maven架构 ssh框架 的全xml环境模版 及常见异常解决

    创建maven项目后,毫不犹豫,超简单傻瓜式搞定dependencies(pom.xml 就是maven的依赖管理),这样你就有了所有你要的包 <project xmlns="http ...

  3. 海岛奇兵服务器维修,海岛奇兵更新进不去?不要怕登录异常解决办法有3招

    相信不少玩家都遇上过,在海岛奇兵新版本更新之后出现卡在登陆界面上,其实对于这样都不算问题,当然这是在接触到这种海岛奇兵登录异常的时候,有办法解决的玩家来说,当然其实遇上这样的问题,解决办法有3招,当然 ...

  4. 怎么设置数据库服务器的最佳性能,调整Windows参数提高数据库服务器性能

    第1页:提高数据库服务器性能 数据库SQL Server跟Windows操作系统是同一个父母生的,他们在一些技术上具有共通性.这在很多方面都有体现.如在日常工作中,我们可以通过调整Windows操作系 ...

  5. Windows2003 企业版 + Sql Server2005手工调整数据库服务器内存

    最近犯了一个大的错误,总以为Windows2003 能够合理的使用多余的内存,能够智能化处理内存,事实非然. 事情是这样的,我有一台数据库服务器,32位,操作系统是Windows2003企业版,4G内 ...

  6. 浅谈优化SQLServer数据库服务器内存配置的策略

    引文 http://demo.nbarticle.com/view/2004/8/9/view_1827.htm 农业银行总行1998年以来正式推广了新版网络版综合业务统计信息系统,该系统是基于Win ...

  7. Android连接SQLServer详细教程(数据库+服务器+客户端),并在微软Azure云上搭建云服务

    Android连接SQLServer详细教程(数据库+服务器+客户端),并在微软Azure云上搭建云服务 参考博客:http://blog.csdn.net/zhyl8157121/article/d ...

  8. php连接sqlserver数据库服务器(或者称mssql数据库)的几种方法

    备注:1.用工具软件链接sqlserver服务器(例如 Navicat Premium,提供多种链接方式)          2.用代码链接sqlserver服务器(主要有以下几种php扩展驱动) 数 ...

  9. 服务器文件被篡改evopro后缀,SQLServer数据库服务器mdf文件中了勒索病毒,扩展名被篡改为.fuk25933...

    SQLServer数据库服务器mdf文件中了勒索病毒,扩展名被篡改为.fuk25933 常见的扩展名如下: ReadInstructions Devos fuk25933 eking 从以下几点着手, ...

最新文章

  1. BP反向传播算法的思考和直观理解 -卷积小白的随机世界
  2. 前端开发浏览器兼容问题
  3. 独家 | 手把手教你用Python 3创建用于机器学习开发的Linux虚拟机(附安装教程代码)...
  4. OO实现ALV TABLE 六:ALV的弹出窗口形式
  5. AspectCore动态代理中的拦截器详解(一)
  6. oracle 触发器 insert 前检查_一文看懂INSTEAD OF 与AFTER 触发器区别与联系
  7. Intellij Idea 下包建包,无论怎么建都在同一级,已解决(附图)
  8. python globle用法
  9. 数据库实战案例—————记一次TempDB暴增的问题排查
  10. 泰格如何修改服务器地址,[问题求助-网络迁移] 【昇腾公有云服务器】【ATC转换工具】在华为昇腾公有云服务器上使用ATC命令PB转OM模型失败...
  11. Shell脚本调用阿里云API实现DDNS动态域名解析
  12. 永恒之塔人最多的服务器,[官方]永恒之塔新增服务器最新列表
  13. electron 热更新
  14. 使用ffmpeg进行音频采样率转换
  15. 4.树和二叉树——数据结构 (严蔚敏C语言版)
  16. Linux Snap 命令
  17. 智能可以把碎片的事实价值弥聚化
  18. 联想拯救者y7000键盘有几个按键失灵_y7000p键盘失灵
  19. 鲁大师5月新机性能榜:红魔6R夺冠,“特供版”新机密集
  20. VMware 和 VirtualBox

热门文章

  1. tf.map_fn 多输入
  2. 字符串API中的split,substr,substring
  3. 微信小程序-滚动消息通知
  4. java笔记:熟练掌握线程技术---基础篇之解决资源共享的问题(中)--前篇
  5. MySQL主从复制中关于AUTO_INCREMENT的奇怪问题
  6. 深度学习优化器演化史
  7. Sql Server 指定列的乘积
  8. C++走向远洋——52(十三周阅读程序)
  9. Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds
  10. 代码工程flex不显示GIF图片问题