I am in the process of building a 3+1 Win2k3 cluster with SQL 2000. Once I got through all the funky install issues, everything is running great. In fact, working with the new cluster services has been such a breath of fresh air compared even to Win2K. The SAN abilities of W2K3 with on the fly drive additions and such are just awesome.
Anyway, the issue I am seeing has to do with memory. The boxes all have 8gb. First thing I noticed was Win2K3 seems to automatically enable the /PAE option. It's not in the boot.ini but the server "knows" it is using AWE support, which is fine. What confuses me is if I give SQL (awe enabled) a fixed 7.5gb of RAM to play with, it seems to actually use it, without the 3gb option or any regard for the OS. I was able to push it to 7.9gb leaving the OS about 50mb and it allowed it, or at least it looks like it allows it. Target and total memory counters for SQL Memory show it using the full 7.9gb, but taskmgr shows SQL using 80mb. I seem to remember reading that this is normal somewhere; taskmgr can't accurate display memory use. The available physical memory in taskmgr does reflect that all physical ram is in use.
Adding the PAE and 3GB options to the boot.ini appears to have made no impact. Almost like they were already there anyway?
Can anyone explain Win2k3 and SQL 2000 memory stuff to me? I feel dumb right now.
The problem is that a 32 bit version of NT can't cope with that kind of memory in the task manager. It reports what the SQL Service is using out of NT's memory pool, while the bulk of the RAM that SQL Server is using lies outside of that pool. While W2K3 is a small step toward LongHorn, it kind of gives you a glimpse of the Brave New World to come.
Thanks, that explains the taskmgr display issue. Makes sense.
Still can't find any info on why SQL disregards, or at least appears to disregard the /3GB option. It'll glom onto every bit of memory I give it. Gonna try to really mess with it tomorrow and give it more than the physical ram in the box. That should break it!
At least based on my experience, extending past 8 Gb on W2K3 will drop performance down the rat hole in most cases, but it doesn't cause the server any serious harm. It can actually make things fly if you have enough SAN hardware to make it practical.
If you like what it does, you should try playing with the 64 bit version. I'm looking forward to seeing that blow through a lot of limits. When we originally laid out the plans for our current platform, I was told that 64 Gb was the limit... When I found that it was really 8 Gb, that really cramped my style. It will be nice to have some room to do real work!
Ok, so your saying this is expected behaviour? I guess that's really what my question comes down to. The only thing that still concerns me is it looks like the OS is not grabbing it's own gig (or 2 without the 3gb option) of physical ram before SQL sucks everything up.
Interesting thought on using the SAN. I assume you mean setting up a disk resource and placing the paging file(s) on it? Hmm, I may have to play around a bit. We don't have any DB's big/active enough to need more than 3gb mem so it would just be for fun, but heck, everyones gotta have fun once in a while!
We have two Itaniums on the way that I will be playing with. Can't wait!