锁定物理内存有用吗

wsliang2006 2011-11-05 07:06:06
在sqlserver的服务器设置中,可以设定锁定物理内存。帮助上说是可以减少io,但是有人说某些版本的windows对这个设定并不尊重。到底是怎样的?
...全文
174 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nzperfect 2011-11-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 wsliang2006 的回复:]
在sqlserver的服务器设置中,可以设定锁定物理内存。帮助上说是可以减少io,但是有人说某些版本的windows对这个设定并不尊重。到底是怎样的?
[/Quote]

这个问题有两种情况:
第一种是在32位下,由于SQL Server寻址空间是4GB,其中Kernel占2GB,User占2G,SQL Server为了提高性能需要将数据尽多的缓存在内存中以减小磁盘IO,对于服务器大于4G的环境来说,为了使SQL缓存的数据超过2G,需要开启AWE,而起锁定内存是开启AWE必要条件。
第二种情况是64位下,一般是如果windows内存压力大,会迫使SQL释放内存,这种情况下,为了避免SQL内存被page out,同样需要开启锁定内存页。如果从未在sql server errorlog可发现内存被page out,则不需要锁定内存页。

两种情况的目的不同。
中国风 2011-11-05
  • 打赏
  • 举报
回复
参照管理大型数据库的内存
http://technet.microsoft.com/zh-cn/library/ms191481.aspx

min server memory 和 max server memory 的影响
http://technet.microsoft.com/zh-cn/library/ms180797.aspx
--小F-- 2011-11-05
  • 打赏
  • 举报
回复
锁定内存的效果不明显 可以用一楼的方法来自己配置内存
--小F-- 2011-11-05
  • 打赏
  • 举报
回复
---SQL Server对大容量内存的支持
32位操作系统有个很大的缺陷,应用程序无法访问大于4G的进程地址空间,因为32位的指针无法保存大于4G的地址空间
如果大于4G,则需要使用地址窗口化扩展插件(AWE),具体操作如下:
1,启动物理地址扩展
(1)找到C:\boot.ini,并删除其只读属性.
(2)编辑boot.ini,在ARC路径中添加/PAE参数.例如:
在windows Server 2003 Enterprise Edition 中,编辑后的ARC路径如下:
muti(0)disk(0)partition(1)windows="windows Server 2003 Enterprise,Edition"/fastdetect/PAE
保存后将其恢复为只读模式,然后重新启动计算机。

如果计算机上的可用物理内存超过16G,应确保boot.ini文件中没有/3gb参数

---如何启动AWE选项
sp_configure'show advanced options',1
reconfigure
go
sp_configue 'awe enabled',1
reconfigure
go


---手动配置内存选项
sp_configure'show advanced options',1
go
reconfigure
go
sp_configure 'min server memory' --服务器最小内存
sp_configure 'max server memory' --服务器最大内存
sp_configure 'index create memory'--创建索引占用的内存
sp_configure 'min memory per query'--每次查询占用的最小内存

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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