文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SQL Server什么时候启用“锁定内存页”选项 (Windows)

2014-07-30 13:48

关注

SQL Server什么时候启用“锁定内存页”选项 (Windows)

    在SQL Server的配置中,尤其是那些应用服务器和数据库服务器共用/混用的情况下,最好启用锁定内存页选项。反而对于单独的SQL Server数据库服务器,这个选项反而不是必须的。最近就遇到过这样一个案例,一个项目的SQL Server数据库和IIS应用等都部署在同一台服务器上,当时,Zabbix监控已经出现CPU告警、以及Swap Usage告警....

 

 

clip_image001

 

登录服务器,检查后发现IIS Worker Process进程占用了大量的CPU资源,消耗占用了12.5GB内存(服务器总共16G内存),由于IIS内存泄露,而SQL Server没有启用锁定内存页选项,即使设定了Maximum server memory,也导致SQL Server的内存被不断挤占,系统将SQL Servre进程用到的数据置换到虚拟内存中去。如下截图所示,最终导致SQL Server性能严重下降,甚至无法连接情况出现。

 

 

clip_image002

 

查看SQL Server的日志信息,你会看到大量这样的错误信息:

 

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

 

clip_image003

 

 

如果SQL Server启用了锁定内存页选项的话,就不会出现这种情况,不会由于内存换出(page out)出现性能和连接问题。下面简单介绍一下SQL Server服务器锁定内存页的简单知识,下面内容节选自官方文档。官方文档中的一部分内容,中文翻译那是相当的糟糕,个人对晦涩难懂或翻译不当的地方有所纠正。所以下面内容与官方文档略有差异。敬请知晓。

 

 

SQL Server启用锁定内存页选项

 

 

适用于: clip_image005SQL Server(所有支持的版本)

 

Windows 策略将确定哪些帐户的进程可以将数据保留在物理内存中,从而阻止系统将内存中数据换出内存(page out)到磁盘的虚拟内存中。

 

备注

当预计会将内存中页换出(page out)到磁盘时,锁定内存中的页可以大大提高性能

 

使用 Windows 组策略工具 (gpedit.msc),可以为 SQL Server的启动帐户启用此策略。必须是系统管理员才能更改此策略。

 

启用锁定内存页选项

 

1.开始菜单上,单击运行。 在打开 框中,键入gpedit.msc

 

2.本地组策略编辑器 控制台上,展开 计算机配置 ,再展开 Windows 设置 

 

3.展开安全设置,再展开 本地策略 

 

4.选择 用户权利指派 文件夹。

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

 

5.在该窗格中,双击锁定内存页

 

6.本地安全设置 - 锁定内存中的页对话框中,单击添加用户或组

 

7.选择用户服务帐户对话框中,选择勾选运行sqlservr.exe SQL Server 启动帐户)的帐户。

 

8.重启 SQL Server 服务,以使此设置生效。

 

 

 

 

锁定内存页 (LPIM)

 

Windows策略将确定哪些帐户的进程可以将其使用的数据保留在物理内存中,从而阻止系统将内存中的页面换出内存(page out)到磁盘的虚拟内存中。 将内存中页换出内存到磁盘时,锁定内存中的页可以可使服务器保持响应。 向运行sqlservr.exe 的启动帐户授予 Windows 锁定内存页 (LPIM) 用户权限时,在 SQL Server Standard Edition 和更高版本的实例中将锁定内存页选项设置为打开

若要对 SQL Server禁用锁定内存页选项,请将运行sqlservr.exeSQL 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 来使用锁定页

 

 

参考资料:

 

https://docs.microsoft.com/zh-cn/sql/database-engine/configure-windows/enable-the-lock-pages-in-memory-option-windows?view=sql-server-ver15

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯