Hi,
I've seen lots of discussions going on about which stats to go with when looking at VM performance and how Windows and its applications manage memory, and wanted to run the following situation past you knowledgeable folk to get some of your thoughts on it...
We have a SQL 2005 server running on Windows 2003 R2 x64 with 6GB of RAM, this VM is running on ESXi5. For a while we'd had performance issues with the server, or at least the DBA's were telling us there were issues. Basically the available memory in Windows was dropping at times to below 100MB free (which Microsoft say indicates a lack of RAM). The conflict we had though was the team looking at the VM side of things were saying the Active Memory usage by the VM was sitting around the 4GB mark and therefore the VM had adequate memory and Windows was just reporting it wrong. So for a while things were left as was and the conflicting Windows/VM stats continued but eventually the decision was taken to up the vRAM to 10GB's.
So now the server has 10GB RAM, SQL naturally grabbed more, the VM stats are giving an active memory averaging close to 6GB and Windows has stopped complaining that the available memory is low. I can understand active memory going up as SQL has grabbed more and is probably caching more data but the fact we're no longer seeing free memory dropping below 100MB's makes me think there was some validity in the Windows stats and that active memory was perhaps slightly misleading.
The other thing that occurred when we upped the RAM was the average CPU utilisation has fallen dramatically, previous this was averaging about 70% utilisation with spikes to 100% with SQL being the guilty process and this has fallen to closer to 30% with spikes of up to 55%. This i don't understand unless somehow a lack of available memory was causing SQL to have to work harder, i.e. couldn't hold as much data in memory etc.
So can anyone explain what I'm seeing and perhaps suggest what would have been better stats to look at, or a better way to interpret them?
Thanks!