又来请教2005内存方面的问题了~~

szm341 2013-10-17 05:04:01
加精
看到一个论坛中提到:
Windows automatically enables PAE if DEP is enabled on a computer that supports hardware-enabled DEP, or if the computer is configured for hot-add memory devices in memory ranges beyond 4 GB. If the computer does not support hardware-enabled DEP or is not configured for hot-add memory devices in memory ranges beyond 4 GB, PAE must be explicitly enabled.

这个我也纠结了很久,确实有服务器中没有开启PAE,但是从sys.dm_os_memory_clerks中
看到的awe所占的已内存超过4G,目前一般服务器都会支持hot-add吧,是不是就说明
这个PAE选项对于服务器而言就鸡肋了呢?

还有就是有个服务器中的awe内存一直只占4G上下,导致经常出现701错误
Failed allocate pages: FAIL_PAGE_ALLOCATION 1
怎样才能让内存的使用率上去呢?
...全文
2128 72 打赏 收藏 转发到动态 举报
写回复
用AI写文章
72 条回复
切换为时间正序
请发表友善的回复…
发表回复
jwwyqs 2013-11-21
  • 打赏
  • 举报
回复
不懂,但我觉得内存大的最好用64为
szm341 2013-11-15
  • 打赏
  • 举报
回复
引用 70 楼 jack11430 的回复:
晕,应该是完全没有性能瓶颈,居然被你们搞成这样
就当压力测试练手了~以后还请各位大神不吝惜指教拜谢了~
最爱午夜 2013-11-15
  • 打赏
  • 举报
回复
晕,应该是完全没有性能瓶颈,居然被你们搞成这样
szm341 2013-11-15
  • 打赏
  • 举报
回复
引用 68 楼 jack11430 的回复:
[quote=引用 67 楼 szm341 的回复:] [quote=引用 66 楼 jack11430 的回复:] 我说的是分配给查询的线程堆栈大小。你可以想象一下,当你开启AWE锁定12GB内存,那么系统只有4GB的内存,但是当连接池的数量非常多时,系统没有足够的内存分配了,于是资源调度器就报错701内存不足。 系统的4GB,其中有2GB需要分配给SQLSERVER,然后其他的服务不说。这个就是实际系统内存分配。 3GB不用开启,你先把AWE的锁定内存减少到8GB试试,3GB会更容易导致系统出现内存不足问题。
非常感谢,我也是觉得AWE12G+4G的其他应用这样看着有些吃紧 当然不是专业角度分析的呵呵,等下就修改为8~12,然后再观察几天 再次感谢[/quote] 你们的数据库有多大啊,怎么老是出这样的问题。[/quote] 不大,才十几G,所以说我觉得应该是程序太糟糕导致的,都是hibernate映射的 开发人员对数据库也不了解,只会用hibernate 不过我也是个半吊子,所以在慢慢研究嘛呵呵
最爱午夜 2013-11-15
  • 打赏
  • 举报
回复
引用 67 楼 szm341 的回复:
[quote=引用 66 楼 jack11430 的回复:] 我说的是分配给查询的线程堆栈大小。你可以想象一下,当你开启AWE锁定12GB内存,那么系统只有4GB的内存,但是当连接池的数量非常多时,系统没有足够的内存分配了,于是资源调度器就报错701内存不足。 系统的4GB,其中有2GB需要分配给SQLSERVER,然后其他的服务不说。这个就是实际系统内存分配。 3GB不用开启,你先把AWE的锁定内存减少到8GB试试,3GB会更容易导致系统出现内存不足问题。
非常感谢,我也是觉得AWE12G+4G的其他应用这样看着有些吃紧 当然不是专业角度分析的呵呵,等下就修改为8~12,然后再观察几天 再次感谢[/quote] 你们的数据库有多大啊,怎么老是出这样的问题。
szm341 2013-11-14
  • 打赏
  • 举报
回复
引用 62 楼 jack11430 的回复:
那是针对32位系统中,最大虚拟寻址空间而言。 你的英文中说开启PAE。那你在运行中输入:winver.exe,看看物理内存是多少。 开启PAE会把系统页表项由4kb大小升到8kb,你可以想象一下,分页数不足时,系统就不响应。 AWE开启后,它所锁定的内存中,数据缓存只占25%-75%,因为它还要更多资源去映射虚拟寻址空间。
上面应为只是说支持hot-add memory 的服务器开启PAE不是必须的 对操作系统不熟,不明白4kb跟8kb的区别,也不太理解分页数不足的情况如何产生 操作系统什么其他的程序都没有,只有一个数据,这中情况分配1G的寻址空间也可以吧,会产生系统不响应或是数据库崩溃的现象吗?
最爱午夜 2013-11-14
  • 打赏
  • 举报
回复
那是针对32位系统中,最大虚拟寻址空间而言。 你的英文中说开启PAE。那你在运行中输入:winver.exe,看看物理内存是多少。 开启PAE会把系统页表项由4kb大小升到8kb,你可以想象一下,分页数不足时,系统就不响应。 AWE开启后,它所锁定的内存中,数据缓存只占25%-75%,因为它还要更多资源去映射虚拟寻址空间。
szm341 2013-11-14
  • 打赏
  • 举报
回复
引用 60 楼 jack11430 的回复:
3GB设置,并不能解决你的问题,因为3GB设置是强制把4GB中的3GB给予SQLSERVER的虚拟内存寻址,而系统则只有1GB,这样系统保留的未分页数大大降低,当系统未分页数不足时,会导致系统强制剪切SQLSERVER的内存,从而导致SQLSERVER执行事务时,回话被强制KILL,有可能带来SQLSERVER数据库的崩溃。
这里的4GB是从哪里分出来的呢? 我是纯数据库服务器,没有其他应用程序,配置上面已经说了,开启了AWE,数据库的最大最小内存设置的12288~14336MB,这个设置是否会影响上面提到的4GB呢? 这个“未分页数”这是操作系统的部分吧,是否跟pagefile有关系呢?关于pagefile对于我的机器配置又需要设置或者设置多少呢?3Q~_~
最爱午夜 2013-11-14
  • 打赏
  • 举报
回复
32位的系统,开启AWE,是指锁定内存分配给SQLSERVER,操作: 控制面板》性能和维护》管理工具》本地安全策略,双击本地安全策略,找到本地策略》用户权利指派, 找到内存中锁定页。然后把你的SQLSERVER服务的账户加入,这个账户必须是本地系统管理员账户。 尽管设置了AWE,但是,这个功能只能带来数据库数据页缓存在锁定的内存页中,而其他的SQLSERVER操作和服务都必须用到服务器指定的内存,在32位的服务器系统上,只有不到2G的内存分配给SQLSERVER。 3GB设置,并不能解决你的问题,因为3GB设置是强制把4GB中的3GB给予SQLSERVER的虚拟内存寻址,而系统则只有1GB,这样系统保留的未分页数大大降低,当系统未分页数不足时,会导致系统强制剪切SQLSERVER的内存,从而导致SQLSERVER执行事务时,回话被强制KILL,有可能带来SQLSERVER数据库的崩溃。
szm341 2013-11-14
  • 打赏
  • 举报
回复
引用 66 楼 jack11430 的回复:
我说的是分配给查询的线程堆栈大小。你可以想象一下,当你开启AWE锁定12GB内存,那么系统只有4GB的内存,但是当连接池的数量非常多时,系统没有足够的内存分配了,于是资源调度器就报错701内存不足。 系统的4GB,其中有2GB需要分配给SQLSERVER,然后其他的服务不说。这个就是实际系统内存分配。 3GB不用开启,你先把AWE的锁定内存减少到8GB试试,3GB会更容易导致系统出现内存不足问题。
非常感谢,我也是觉得AWE12G+4G的其他应用这样看着有些吃紧 当然不是专业角度分析的呵呵,等下就修改为8~12,然后再观察几天 再次感谢
最爱午夜 2013-11-14
  • 打赏
  • 举报
回复
我说的是分配给查询的线程堆栈大小。你可以想象一下,当你开启AWE锁定12GB内存,那么系统只有4GB的内存,但是当连接池的数量非常多时,系统没有足够的内存分配了,于是资源调度器就报错701内存不足。 系统的4GB,其中有2GB需要分配给SQLSERVER,然后其他的服务不说。这个就是实际系统内存分配。 3GB不用开启,你先把AWE的锁定内存减少到8GB试试,3GB会更容易导致系统出现内存不足问题。
szm341 2013-11-14
  • 打赏
  • 举报
回复
引用 64 楼 jack11430 的回复:
你开启AWE,这个时候,内存被固定分配给SQLSERVER,这部分固定分配的内存,只是用于数据缓存、额外复杂度、窗口化,但是系统无法动态的调用AWE锁定的这部分内存了。 这个时候,系统报错内存不足,这里的内存不足不是缓冲池内存不足,而是系统没有足够的内存分配给查询,SQLOS系统会给每个查询分配0.5MB的内存(32位系统上)。 所以,你尝试取消AWE试试,或者,把AWE的内存设置为8GB。
数据库服务设置的每次最小查询为1024KB,是默认设置吧 我确实有意想把AWE的最大值设置小一点,我只是不确定是否对我的情况有改善 而且我上面提到的想开启3gb选项,从您的回答中也没有得到最终的结论, 是可以开启呢还是不可以,开启了对是否会出现诸如系统不响应等的情况? 不过还是谢谢你了~嘿嘿
最爱午夜 2013-11-14
  • 打赏
  • 举报
回复
你开启AWE,这个时候,内存被固定分配给SQLSERVER,这部分固定分配的内存,只是用于数据缓存、额外复杂度、窗口化,但是系统无法动态的调用AWE锁定的这部分内存了。 这个时候,系统报错内存不足,这里的内存不足不是缓冲池内存不足,而是系统没有足够的内存分配给查询,SQLOS系统会给每个查询分配0.5MB的内存(32位系统上)。 所以,你尝试取消AWE试试,或者,把AWE的内存设置为8GB。
sbigwolf 2013-11-13
  • 打赏
  • 举报
回复
64位的服务器 都哪几个型号比较好。正在考量中。志强系列的行不行
szm341 2013-11-13
  • 打赏
  • 举报
回复
引用 57 楼 yupeigu 的回复:
你看看这个文章: 32位 sql server 開啟/PAE /AWE /3GB http://blog.csdn.net/u012143723/article/details/12043499
以阅,大体上跟我想的差不多吧嘿嘿,可以一试
LongRui888 2013-11-13
  • 打赏
  • 举报
回复
引用 56 楼 szm341 的回复:
[quote=引用 54 楼 yupeigu 的回复:] 又来请教了~嘿嘿,今天偶然想到的,请大神指点一二
既然说32位的很难超越2G内存,这2G内存应该指的VAS吧, 那么我有个想法就是开启/3gb,是不是就可以突破2G的限制达到3G了呢 因为以前见一位大神提过,开启pae就没必要开启/3gb或者说 如果内存超过16G的就不可以开/3gb了吧 那么我机器内存是16G的,是不是用/3gb+awe就可以再扩展1G的VAS了呢? 这个扩展对我的问题又是否有帮助呢?[/quote] 你看看这个文章: 32位 sql server 開啟/PAE /AWE /3GB http://blog.csdn.net/u012143723/article/details/12043499
szm341 2013-11-13
  • 打赏
  • 举报
回复
引用 54 楼 yupeigu 的回复:
又来请教了~嘿嘿,今天偶然想到的,请大神指点一二
既然说32位的很难超越2G内存,这2G内存应该指的VAS吧, 那么我有个想法就是开启/3gb,是不是就可以突破2G的限制达到3G了呢 因为以前见一位大神提过,开启pae就没必要开启/3gb或者说 如果内存超过16G的就不可以开/3gb了吧 那么我机器内存是16G的,是不是用/3gb+awe就可以再扩展1G的VAS了呢? 这个扩展对我的问题又是否有帮助呢?
LongRui888 2013-10-25
  • 打赏
  • 举报
回复
引用 53 楼 szm341 的回复:
[quote=引用 52 楼 yupeigu 的回复:] [quote=引用 51 楼 szm341 的回复:] [quote=引用 50 楼 yupeigu 的回复:] 数据库页,stolen page 包括single 和multi total = 数据库页 + stolen page
上述三个参数分别是1.5+G+80+M=1.6G 我这儿应该是sql cache这个值比较高,好像能达到100多兆,100多兆时性能计数器显示接近100%[/quote] 哦 占用100%,到并不表示sql cache占用的很高,因为想你说的sql cache 也就100多M,还是挺正常的。[/quote] 哎。。sqlserver就是个坑。。还得仔细研究啊~ 晚些结贴,还要多多请教,请勿见怪拜谢了先[/quote] 嗯嗯,我也有不少疑问呢,特别是开启了awe后的sql server的内存管理,有点迷糊
szm341 2013-10-24
  • 打赏
  • 举报
回复
引用 29 楼 SmithLiu328 的回复:
即使启用了AWE, 很多情况下内存使用还是有限制的,比如Stolen和MemoryToLeave的部分。
引用 33 楼 perfectaction 的回复:
另外,早点迁到64位能解决一些性能问题,因为AWE不能映射所有的内存申请,如29楼所述,难超2GB限制。
引用 39 楼 yupeigu 的回复:
呵呵,确实可以考虑换64位的系统了哈。 不过一般公司也会考虑成本的,毕竟要换64位的服务器,也是需要硬件投资的。而且有些系统,运行的也比较稳定,不会轻易更换。
各位大神~32位系统很难超2GB的限制,这里的2GB都是哪里用的啊? awe是缓存数据页的,可以设置大小,single是sql执行计划之类的,最多2GB? 这个指数有阈值吗?性能计数器中哪个可以显示啊?
szm341 2013-10-24
  • 打赏
  • 举报
回复
引用 52 楼 yupeigu 的回复:
[quote=引用 51 楼 szm341 的回复:] [quote=引用 50 楼 yupeigu 的回复:] 数据库页,stolen page 包括single 和multi total = 数据库页 + stolen page
上述三个参数分别是1.5+G+80+M=1.6G 我这儿应该是sql cache这个值比较高,好像能达到100多兆,100多兆时性能计数器显示接近100%[/quote] 哦 占用100%,到并不表示sql cache占用的很高,因为想你说的sql cache 也就100多M,还是挺正常的。[/quote] 哎。。sqlserver就是个坑。。还得仔细研究啊~ 晚些结贴,还要多多请教,请勿见怪拜谢了先
加载更多回复(47)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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