July 27, 2006 at 12:55 am
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
July 27, 2006 at 2:35 am
July 27, 2006 at 4:01 am
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)
July 27, 2006 at 5:47 am
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.
July 27, 2006 at 6:43 am
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
August 1, 2006 at 10:55 am
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