none
关于SQL Server 2000 sp4 AWE 问题 RRS feed

  • 问题

  • 小弟已经开启了 AWE,

    在错误日志中 也有 Address Windowing Extensions enabled.

    任务管理器中分配到的内存是60+MB

    使用 perfmon 可以看到:目标服务器内存是:2088712KB,总服务器内存也是 2088712KB。

    问题是我安装的物理内存是4g,还有1575MB 内存空闲。

    sql server 为什么不用这些内存。buffer pool的 total pages 和 target pages 一直没有增加的迹象。是不是我还遗留了什么东西。求大神指点

    2012年8月8日 5:07

答案

  • AWE is for machine with more than 4gb memory. In your case, sql can use about 2.7gb memory if you added /3gb in boot.ini file. Otherwise can only use about 1.7gb memory. Windows divided 4gb base memory in two parts - 2gb for user mode and 2gb for kernal mode. Only OS and certain drivers can use kernal mode memory, all other apps including sql service are sharing user mode memory.
    2012年8月8日 13:51

全部回复

  • 是否在boot.ini中设置了/3GB呢?

    take a look at:http://msdn.microsoft.com/en-us/library/bb613473(v=vs.85).aspx

    2012年8月8日 5:57
  • AWE is for machine with more than 4gb memory. In your case, sql can use about 2.7gb memory if you added /3gb in boot.ini file. Otherwise can only use about 1.7gb memory. Windows divided 4gb base memory in two parts - 2gb for user mode and 2gb for kernal mode. Only OS and certain drivers can use kernal mode memory, all other apps including sql service are sharing user mode memory.
    2012年8月8日 13:51
  • 目标服务器内存是:2088712KB,总服务器内存也是 2088712KB,安装的物理内存是4G,空闲内存1.5G

    1:就算了开启了AWE,也需要mssql用到才行啊,比如你打开了SSMS什么也不做,那么mssql肯定不会分配更多的内存

    如果你执行一个数据导出操作,有千万级别的数据,那么mssql会分配多一些内存,有可能4G内存都使用上

    2:下面这篇帖子有很好的答复,使用PAE选项在boot.ini里面

    In 4gb base memory, sql uses memory above 4gb range for buffer cache only. By the way, /pae is in boot.ini file

    参考帖子:http://social.technet.microsoft.com/Forums/zh-CN/sqlserverzhchs/thread/e087924a-33af-4b95-a1f7-d67052f967a7


    给我写信: QQ我:点击这里给我发消息

    2012年8月8日 14:27
  • 目标服务器内存是:2088712KB,总服务器内存也是 2088712KB,安装的物理内存是4G,空闲内存1.5G

    1:就算了开启了AWE,也需要mssql用到才行啊,比如你打开了SSMS什么也不做,那么mssql肯定不会分配更多的内存

    如果你执行一个数据导出操作,有千万级别的数据,那么mssql会分配多一些内存,有可能4G内存都使用上

    2:下面这篇帖子有很好的答复,使用PAE选项在boot.ini里面

    In 4gb base memory, sql uses memory above 4gb range for buffer cache only. By the way, /pae is in boot.ini file

    参考帖子:http://social.technet.microsoft.com/Forums/zh-CN/sqlserverzhchs/thread/e087924a-33af-4b95-a1f7-d67052f967a7


    给我写信: QQ我:点击这里给我发消息

    1. sql never use 4gb memory on machine that has only 4gb memory, no matter what you do.

    2. PAE is for machine with more than 4gb memory too.

    2012年8月8日 14:39
  • sql当然不会用完所有内存,不管你是4G、16G、32G还是更多,他使用的内存肯定不会超过系统本身拥有的物理内存

    第2点说漏了,就是当拥有大内存的时候,sql才会使用AWE(开启AWE支持64G内存),针对内存较多的机器,你4G内存太少了

    sql不会使用AWE的


    给我写信: QQ我:点击这里给我发消息

    2012年8月8日 14:48
  • As I said above, enterprise edition of sql can use 1gb kernal memory if added /3gb in boot.ini file. That makes about 2.7gb out of 4gb total, way different from your comments. 
    2012年8月8日 15:21
  • 这个我在联机文档中看过,在windows 2000中有个3g的限制,但是在 windows 2003中没有提到相关的限制条件。

    我用的是 windows 2003,/3g参数 只是3g的地址空间 和内存应该没有什么关系。

    我现在也开始怀疑4g内存是不是太少的关系。现在还是无解。

    2012年8月13日 6:31
  • /3g参数 实际上只是一个开关,至于怎麽使用内存,怎麽管理内存分配内存由操作系统跟mssql自己判断来执行的

    给我写信: QQ我:点击这里给我发消息


    2012年8月13日 7:26
  • 这个我在联机文档中看过,在windows 2000中有个3g的限制,但是在 windows 2003中没有提到相关的限制条件。

    我用的是 windows 2003,/3g参数 只是3g的地址空间 和内存应该没有什么关系。

    我现在也开始怀疑4g内存是不是太少的关系。现在还是无解。

    Windows will not let user mode app use kernal memory without /3gb switch. In win2k, only enterprise edition supports /3gb. But not the case in win2k3.
    2012年8月13日 13:15