请教一个问题
有一台数据库服务器,无其它应用
8cpu
4G内存
windows server 2003 企业版
sql server 2000 企业版(已打sp4)
目前已做操作:
1. boot.ini 已加/PAE参数
2. 页锁定:本地安全策略已加 system administrator
3. 已执行:
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
sp_configure 'max server memory', 4096
RECONFIGURE
GO
但重启后,没有任何变化,从sql server错误日志可以看出:Address Windowing Extensions enabled.
现在,真是没有办法了,请老大及各位帮帮忙,哪位有实战经验,指点下..谢谢
12 个解决方案
#1
内存都是自动分配的吧
#2
可以自动分配,也可以固定
目前数据库压力比较大,但内存始终上不去2G. 说明数据不能更多的缓存在内存里.
#3
1)4GB 内存 os不需要开启PAE ,SQL Server 不需要开启 AWE
2)打开os的/3GB 根据实际情况可以设置min/max server memory
#4
可以使用地址窗口扩展(AWE)
或者修改boot.int ,设置32位程序最大内存位3GB
或者修改boot.int ,设置32位程序最大内存位3GB
#5
在2000下的设置,开了PAE参数,在SQL里安装了SP4和针对开了AWE的补丁,开了AWE,
之所以没有占用过多的内存,是因为你的处理不需要那么多内存.
无论怎么设置, SQL Server均只是根据使用情况分配内存, 只有内存足够且有新需要时才自动分配新的内存.
如果内存,则释放内存到sql server设置的最小内存.
我提老大回答你吧
之所以没有占用过多的内存,是因为你的处理不需要那么多内存.
无论怎么设置, SQL Server均只是根据使用情况分配内存, 只有内存足够且有新需要时才自动分配新的内存.
如果内存,则释放内存到sql server设置的最小内存.
我提老大回答你吧
#6
to shuiniu
你的意思是说4G可能是个分界点?如果是8G,/PAE AWE才更有效?
今晚试试/3G,并关了AWE 试试
to utpcb
如果像你说的这样,我就不提问了。。
to viva369
我说的你没看吧
谢谢三位,继续征求解决方案。邹建大哥偶可是你的fans啊...
你的意思是说4G可能是个分界点?如果是8G,/PAE AWE才更有效?
今晚试试/3G,并关了AWE 试试
to utpcb
如果像你说的这样,我就不提问了。。
to viva369
我说的你没看吧
谢谢三位,继续征求解决方案。邹建大哥偶可是你的fans啊...
#7
我上面的回复是针对你所提供的信息,所给出的建议。
可能是我回复的太简单了,导致你理解有误。
下面详细说一下:
1)/PAE 适用于32位os(x86),使其可寻址最大64GB的物理内存。当打开
/PAE时,实际上os加载了一个PAE版本的内核。但并不是说物理内
存小于4GB时开启该选项就没有用处,在某些场合还是有用处的。例如:
对于驱动程序开发人员,他就可以在小内存的Windows开启选项,来测试
驱动程序中对大地址的访问。所以当物理内存大于4GB时,要想用到
大于4GB的这部分内存,就必须打开/PAE开关。
2)AWE是Windows提供的一组分配内存的API,它使应用程序能够
访问的内存量超过通过标准32位寻址可使用的2或3GB内存。如果可用物理内
存小于用户模式虚拟地址空间的话,是无法激活AWE的就算你开启该选项。
AWE机制对于64位平台似乎是不必要的,因为但是64位平台上的应用程序完全可
以寻址很大的空间。但要记住一点是通过AWE API分配的内存是非分页内存,
也就是说是不会被os换出到系统的分页文件的。这也是64位平台使用AWE机制
的一个原因。
3)/3GB 当开启该开关时用户应用程序可以寻址3GB的进程地址空间,而
为操作系统保留1GB的进程地址空间。这也就意味着留给os的变少了,一些内
核的数据结构也会相应的缩小,对于1GB的内核寻址空间,os最多只能寻址16GB
的物理内存,当想使用超过16GB的物理内存时,就必须确保内核的2GB寻址能力,
也就是系统不能在/3GB模式下启动。
4)不同的sql server版本,不同的Windows版本。对所支持的内存容量和分配和
处理方式会有所不同。
5)SQL Server2005 在内存管理较2000已有比较大的变化,可以在msdn上找到相关
的资料。
#8
非常感谢shuiniu的回复
你说的这些我理解,微软的文档里也有解释
只不过我目前的情况符合微软文档里的硬件和软件配置,sql server 却无法超越2G内存,实在是没有办法了,
现在把/PAE 改成了 /3G
关了AWE
重启后,sql server 所占 内存还是直接就到2G,仍然无法超过。郁闷了。。
你说的这些我理解,微软的文档里也有解释
只不过我目前的情况符合微软文档里的硬件和软件配置,sql server 却无法超越2G内存,实在是没有办法了,
现在把/PAE 改成了 /3G
关了AWE
重启后,sql server 所占 内存还是直接就到2G,仍然无法超过。郁闷了。。
#9
有些东西就是很奇怪
最终解决了
windows2003 boot.ini 加/pae
sql server 2k 升级到 2005 ,开启awe ,设置'max server memory'
最后查看cache的缓存量
select *,cntr_value*1.0/(1024*1024) from master..sysperfinfo where counter_name like '%total%memory%'
已达到理想值
很是奇怪,为什么2000不行?
更我所在的DBA群里,其它朋友也遇到过此类情况,有的朋友就是2000,却可以。
难到我的是盗版的不成?难道硬件有问题?
最终解决了
windows2003 boot.ini 加/pae
sql server 2k 升级到 2005 ,开启awe ,设置'max server memory'
最后查看cache的缓存量
select *,cntr_value*1.0/(1024*1024) from master..sysperfinfo where counter_name like '%total%memory%'
已达到理想值
很是奇怪,为什么2000不行?
更我所在的DBA群里,其它朋友也遇到过此类情况,有的朋友就是2000,却可以。
难到我的是盗版的不成?难道硬件有问题?
#10
还是人品有严重问题?
#11
mark
#12
在某些情况下,还要打上sp4之后的一个kb,这个才是真正解决办法,方便后人解决问题,今日补上。
#1
内存都是自动分配的吧
#2
可以自动分配,也可以固定
目前数据库压力比较大,但内存始终上不去2G. 说明数据不能更多的缓存在内存里.
#3
1)4GB 内存 os不需要开启PAE ,SQL Server 不需要开启 AWE
2)打开os的/3GB 根据实际情况可以设置min/max server memory
#4
可以使用地址窗口扩展(AWE)
或者修改boot.int ,设置32位程序最大内存位3GB
或者修改boot.int ,设置32位程序最大内存位3GB
#5
在2000下的设置,开了PAE参数,在SQL里安装了SP4和针对开了AWE的补丁,开了AWE,
之所以没有占用过多的内存,是因为你的处理不需要那么多内存.
无论怎么设置, SQL Server均只是根据使用情况分配内存, 只有内存足够且有新需要时才自动分配新的内存.
如果内存,则释放内存到sql server设置的最小内存.
我提老大回答你吧
之所以没有占用过多的内存,是因为你的处理不需要那么多内存.
无论怎么设置, SQL Server均只是根据使用情况分配内存, 只有内存足够且有新需要时才自动分配新的内存.
如果内存,则释放内存到sql server设置的最小内存.
我提老大回答你吧
#6
to shuiniu
你的意思是说4G可能是个分界点?如果是8G,/PAE AWE才更有效?
今晚试试/3G,并关了AWE 试试
to utpcb
如果像你说的这样,我就不提问了。。
to viva369
我说的你没看吧
谢谢三位,继续征求解决方案。邹建大哥偶可是你的fans啊...
你的意思是说4G可能是个分界点?如果是8G,/PAE AWE才更有效?
今晚试试/3G,并关了AWE 试试
to utpcb
如果像你说的这样,我就不提问了。。
to viva369
我说的你没看吧
谢谢三位,继续征求解决方案。邹建大哥偶可是你的fans啊...
#7
我上面的回复是针对你所提供的信息,所给出的建议。
可能是我回复的太简单了,导致你理解有误。
下面详细说一下:
1)/PAE 适用于32位os(x86),使其可寻址最大64GB的物理内存。当打开
/PAE时,实际上os加载了一个PAE版本的内核。但并不是说物理内
存小于4GB时开启该选项就没有用处,在某些场合还是有用处的。例如:
对于驱动程序开发人员,他就可以在小内存的Windows开启选项,来测试
驱动程序中对大地址的访问。所以当物理内存大于4GB时,要想用到
大于4GB的这部分内存,就必须打开/PAE开关。
2)AWE是Windows提供的一组分配内存的API,它使应用程序能够
访问的内存量超过通过标准32位寻址可使用的2或3GB内存。如果可用物理内
存小于用户模式虚拟地址空间的话,是无法激活AWE的就算你开启该选项。
AWE机制对于64位平台似乎是不必要的,因为但是64位平台上的应用程序完全可
以寻址很大的空间。但要记住一点是通过AWE API分配的内存是非分页内存,
也就是说是不会被os换出到系统的分页文件的。这也是64位平台使用AWE机制
的一个原因。
3)/3GB 当开启该开关时用户应用程序可以寻址3GB的进程地址空间,而
为操作系统保留1GB的进程地址空间。这也就意味着留给os的变少了,一些内
核的数据结构也会相应的缩小,对于1GB的内核寻址空间,os最多只能寻址16GB
的物理内存,当想使用超过16GB的物理内存时,就必须确保内核的2GB寻址能力,
也就是系统不能在/3GB模式下启动。
4)不同的sql server版本,不同的Windows版本。对所支持的内存容量和分配和
处理方式会有所不同。
5)SQL Server2005 在内存管理较2000已有比较大的变化,可以在msdn上找到相关
的资料。
#8
非常感谢shuiniu的回复
你说的这些我理解,微软的文档里也有解释
只不过我目前的情况符合微软文档里的硬件和软件配置,sql server 却无法超越2G内存,实在是没有办法了,
现在把/PAE 改成了 /3G
关了AWE
重启后,sql server 所占 内存还是直接就到2G,仍然无法超过。郁闷了。。
你说的这些我理解,微软的文档里也有解释
只不过我目前的情况符合微软文档里的硬件和软件配置,sql server 却无法超越2G内存,实在是没有办法了,
现在把/PAE 改成了 /3G
关了AWE
重启后,sql server 所占 内存还是直接就到2G,仍然无法超过。郁闷了。。
#9
有些东西就是很奇怪
最终解决了
windows2003 boot.ini 加/pae
sql server 2k 升级到 2005 ,开启awe ,设置'max server memory'
最后查看cache的缓存量
select *,cntr_value*1.0/(1024*1024) from master..sysperfinfo where counter_name like '%total%memory%'
已达到理想值
很是奇怪,为什么2000不行?
更我所在的DBA群里,其它朋友也遇到过此类情况,有的朋友就是2000,却可以。
难到我的是盗版的不成?难道硬件有问题?
最终解决了
windows2003 boot.ini 加/pae
sql server 2k 升级到 2005 ,开启awe ,设置'max server memory'
最后查看cache的缓存量
select *,cntr_value*1.0/(1024*1024) from master..sysperfinfo where counter_name like '%total%memory%'
已达到理想值
很是奇怪,为什么2000不行?
更我所在的DBA群里,其它朋友也遇到过此类情况,有的朋友就是2000,却可以。
难到我的是盗版的不成?难道硬件有问题?
#10
还是人品有严重问题?
#11
mark
#12
在某些情况下,还要打上sp4之后的一个kb,这个才是真正解决办法,方便后人解决问题,今日补上。