AWE Question

  • I've upgraded our SQL cluster (Windows 2003 SP1, SQL 2000 SP4 - 4 nodes active/passive) to 8GB on each node. I've set the boot.ini files to include the /3GB and /PAE switch and enabled the AWE setting the max server memory to 6.5GB.

    After restarting the servers it appears that instead of 6.5GB the SQL instances have been allocated only 4GB. Did I miss something????

    Thanks

    Glenn

  • Maybe 4GB RAM is enough for your SQLServer.
     
    Otherwise,try to remove the /3GB switch.
     
    Furthermore,ensure that the account running SQLServer has the right of "log pages in memories".This can be found through "Management Tools --> Local Safe Policy-->User Right..."
     
    Add the account if necessary....
  • It looks as though your setup is correct.  You should have the /3GB and /PAE switches in the boot.ini file for memory greater than 4GB and less than 16GB.

    Would also go with Li Zhi-song's suggestion of making sure the SQL service can 'Lock Pages in Memory'

    Hope this helps

     Ian (SQLBod)

  • I presume, since you're using clustering, that you're using Enterprise Edition of SQLServer? (If you aren't, you can't use AWE on Standard Edition)

    Assuming that you are using Enterprise, then I think Li's suggestion is the most likely - your SQLServer simply doesn't need 6.5 Gb.

  • Thanks all for your input...

    Yes - I forgot to mention that I had already set the "lock pages in memory" local policy. and yes... being a clustered environment we are using SQL and Windows Enterprise.

    That being said... is there a hot fix, etc that would enable the additional 2.5GB of memory for the SQL instances (yes - we really need that much)? Or, perhaps I'm missing something with determining how much memory is really available. Perfmon didn't really tell me anything @3AM with all the users off for the memory upgrade. But I have to believe that something other than load on the database will be able to indicate how much memory the databases have available for use.

    Thanks

    Glenn

  • Ok, perhaps I'm getting this all wrong, so please let me know as I'm happy to learn from mistakes. 

    My understanding is that when you set the AWE switches, as Glenn has done, SQL Server will

    take the maximum amount of memory allocated to it, leaving the rest for the OS, because non-pagged memory

    cannot be swapped out (K Delaney,'Inside SQL Server 2000', sect 'Managing Memory', para 23 and 24). If

    'max server memory' is at default (2147483647), then this could be all but 128MB (see K Delaney, 'Inside

    SQL Server 2000',sect 'SQL Server Configuration Settings', para 12+). This will be irrespective of what

    SQL Server actually needs. Therefore, the 'max server memory should be set, which for Glenn would be

    6656 (MB). SQL Server will then take (reserve) this, ignoring the 'min server memory' value

    (see http://msdn2.microsoft.com/en-us/library/ms190673.aspx, and also K Delaney). So, if Glenn needs

    6.5GB, then the 3GB switch will be required to release a further 1GB from the OS to SQL Server for it

    to use the extra 0.5GB.  Please let me know if I've misunderstood this. 

    Glenn, there is a post-sp4 AWE patch, which you can get from

       http://support.microsoft.com/default.aspx?kbid=899761

    This fixes an issue where not all memory is available, which may be the issue you're having.

    Also, if you want to look at what memory SQL Server is using, and how it is using it, you can make use of

    'DBCC MEMORYSTATUS' (see here for info http://support.microsoft.com/?id=271624).

    Hope this helps.

    Rgds

    Ian (SQLBod)

     

     

Viewing 6 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic. Login to reply