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

网友投稿 832 2023-05-31

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

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

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

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

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

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

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

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

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

备注

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

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

启用“锁定内存页”选项

在“开始”菜单上,单击“运行”。在“打开” 框中,键入gpedit.msc在“本地组策略编辑器” 控制台上,展开 “计算机配置” ,再展开 “Windows 设置” 。展开“安全设置”,再展开 “本地策略” 。选择 “用户权利指派” 文件夹。细节窗格中随即显示出策略。在该窗格中,双击“锁定内存页”。在“本地安全设置 - 锁定内存中的页”对话框中,单击“添加用户或组” 。在“选择用户”、“服务帐户”或“组”对话框中,选择勾选运行sqlservr.exe (*** 启动帐户)的帐户。重启 *** 服务,以使此设置生效。

锁定内存页 (LPIM)

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

若要对 ***禁用“锁定内存页”选项,请将运行sqlservr.exe(*** 启动帐户)的启动帐户的帐户删除“锁定内存页”用户权限。设置此选项可实现根据其他内存分配器的请求扩大或缩小内存,不影响SQL Server的动态内存管理。使用“锁定内存页”用户权限时,建议按如上所述,为 max server memory 设置一个上限。

重要

参考资料

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MySQL 中的表级锁很差劲吗?
下一篇:基于PostgreSQL流复制的容灾库架构设想及实现
相关文章