Hi,
This is directed towards the team that is working on the server performance side of things. I work with performance tuning for a large medical EHR software company so ensuring the speed of the program that runs through Windows Server and SQL is a high priority. You may already have thought of these tweaks to help with server performance but just in case I wanted to offer the suggestion.
Hyper Threaded Core Sharing
Over utilization is a very easy problem to cause when using VM’s with SQL server. To verify that you are seeing a problem with this, simply open task manager and see if the sqlserver.exe cpu usage is erratic. You will notice it may be at 3% then up to 40% or 90% then back down to 10%. When you check sql with a Who4 or 5 the queries that are running are using minimal resources.
The number one thing that I run into and I have to fight with 99% of Technicians I deal with is if you are using VMware and SQL Server together make sure Hyper Threaded Core Sharing is DISABLED for the vm guest that houses the SQL server (not the VM Host or the BIOS). A lot of IT people believe that if you throw enough resources at something it will run better. This is not the case with VMware and SQL. With a program that runs a lot of small procs within SQL this will cause the cache to build and actually slow down performance.
In the NIC’s Properties Window, click “configure,” then go to the “Advanced” tab and disable the following (this will break teamed NIC’s):
a) IPV4 Checksum Offload
b) IPv4 Large Send Offload
c) TCP Connection Offload (IPv4)
d) TCP Connection Offload (IPv6)
e) Receive Side Scaling
f) Disable NetBios
100% of the time I complete these steps on a vm sql server I see a tremendous performance improvement.
I hope this helps.