I have SQL Server inside an ESX VM... the server has 32GB Ram. Right now, I've given it 4GB of Ram because I had some to spare.

How do I know how much memory I should throw at SQL Server (since it takes all it can get at bootup) and if moving to 64 bit is useful or not?


You want to go 64-bit if at all possible. SQL Server will be able to allocate the extra memory as necessary to all memory pools. There are limits to what it can do in the 32-bit version, even if you configure AWE memory support.

How much memory is really dependent on how much utilization the SQL Server will see. 4 GB is a good starting point and you should measure performance from there to determine if you need more. Keep in mind that SQL Server will expand to take up all the memory that is available as it needs more memory and that it won't let the memory go unless the OS experiences memory pressure. Therefore, don't be alarmed if you see SQL Server taking up a lot of memory. That is normal (and expected with RDBMS platforms).

As to the virtualization question, it depends. Unless there are very heavy loads, virtualization can work with production systems. The key is to not short change SQL Server or the OS because it is virtualized. Allocate it the same amount of processor and memory as if it were on a physical server. Also, make sure you've followed the best practices with respect to disk configuration for the version of ESX you're running.

| improve this answer | |
  1. As much as you can is the simple answer, but if you have a single 1GB database then 1.5 GB would be OK.
  2. 64 bit: Yes. Absolutely. 100%.

However, running a prod SQL Server instance virtually isn't a good idea.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.