系统环境:windows 2003 enp sp2(32bit,自动更新、补丁齐),原12G内存,现48G内存,系统能识别全部内存,未加pae参数。原12G内存时,测试过不管是否加pae参 数,都可以识别12G内存,经查可能是因为内存支持热插拔时不需要加pae参数。sql server developer sp4(32bit,8.00.2282)
原12G内存时,设置max server memory (MB) 为11G,“sql server:内存管理器”可以看到“目标服务器内存”、“总服务器内存”都为11G。加到48G内存后,设置全部自动使用,组策略里已设置有内存锁定权限。重启服务器,则sql server无法启动。系统日志里提示:
事件ID:17055,描述:17138: 未能为初始化“ReadOnly memory object”分配足够的内存。
修改max server memory 为15G,则sql server可以正常启动。未重启的情况下,再修改max server memory (MB) 为31G,sp_configure显示正常设置成功,但是“sql server:内存管理器”看到“目标服务器内存”、“总服务器内存”都为同样的15G,没有增加到31G。
在此测试机上再安装sql server 2008 R2 enp sp1(32bit)新实例,修改max server memory为10G和31G,则此实例的Total Server Memory和Target Server Memory显示不同,Target Server Memory能随max server memory 的修改而正确变动为10G和31G。
网上各种搜,MSDN各种搜,bing各种搜,MSDN论坛也问了,没有实实在在的解释。只有TechNet某处提到要windows 2003 Datacenter才能让SQL Server 2000到64G,否则SQL 2000 Enp只能32G。SQL Server Enp版和Dev版各项指标是一样的。
最终重启一次SQL Server 2000的服务,就正常看到“目标服务器内存”和“总服务器内存”都为31G了~看来确实企业版情况下SQL Server 2000只能配置30-31G了,用了一会儿,缓存命中率99%。
后期还是要逐步迁移部分业务到SQL Server 2008 R2上,这样才能物尽其用。
还有一个小插曲,CPU是X5570 2.9G*2(4核8线程,共16个逻辑CPU),原来用的UDIMM最大只能24G,之前配置的12G就是UDIMM,买内存的人先买错了,买了4G*6的UDIMM,全加装上后就启动不了。只能全部撤下并退货,换买RDIMM 8G×6,系统最大96G看来不能用到了,除非系统换windows Server 2008。但是换上新内存后,电源又告警,说系统负载超过电源容量,直接把CPU降频到1.6G了,我勒个去~~怀疑真能插满96G内存不~~直接买了大容量冗余电源,原来两个又只好闲置了。硬盘已经插满8块,RAID 10,看来以后只能申请换SSD才能提高性能了。
知道有人要问,先回答了:
扫了一下雷,速度飞快~~哈哈~~