It seems to be performance week this week at VMware. It started out with Eric Horschman’s reply to Virtualization Review’s hypervisor performance comparisson. What amazed me the most, besides the results, is the fact that Keith Ward writes that the methodology was discussed with VMware and VMware agreed that it was fair. Reading Eric’s response this certainly isn’t the case. What stood out in Eric’s reply and what also surprised me when reading the original article by Rick Vanover is the following:
“The fact that ESX is completing so many more CPU, memory, and disk operations than Hyper-V obviously means that cycles were being used on those components as opposed to SQL Server.”
Now I’m not going to analyse Rick’s test or Eric’s response, there’s no need to do so. Others are far more capable of doing that, like for instance Chris Wolf. Chris has a valid point, we really need SPECvirt, and we need it fast to get wrid of these endless discussions. For those not familiar with the SPECvirt initiative you can dive into it here. SPECs motto describes best what it’s about:”The key realization was that an ounce of honest data was worth more than a pound of marketing hype”.
But without SPECvirt in place it seems to me that in the end it comes down to following the guidelines mentioned in the Performance Best Practices and Benchmarking Guidelines paper. This paper has been written by the VMware team but can be used for any kind of benchmarks, the guidelines are generic.
Whenever I need to do performance tests or need to pinpoint performance bottlenecks I start by reading everything I can find on the subject. Although the guidelines are generic the counters / observations / methodology one uses might vary per benchmark. It can’t be a coincidence that 80% of the relevant articles I’ve read so far were written by VMware’s Scott Drummonds. Scott is a subject matter expert on performance benchmarking and has written numerous blog articles and documents on performance testing and related topics.
Scott just released a new post on virtualized MS SQL servers. As Scott explains there seems to be a common misconception on the performance of a virtualized MS SQL server.
“I talked with every customer I could find that claimed that SQL ran at anything less than 70% of native. So many of these contacts claimed that they had measured SQL at 25% of native or worse, that I knew that something was going wrong.”
How do people end up with a server that runs at 25% of native performance? My guess, no optimization, no tuning and P2V. First P2V, in other words 1:1 copy of a physical machine to a virtual environment. Keep in mind that a virtualized server needs to be optimized. (Drivers / Agents / Devices). I’m not going to elaborate on what to remove and why cause there are a lot of posts on this topic on VMTN.
Optimization and tuning is also needed for servers that are natively build on a virtual environment in and outside the VM:
“The only option that we found in ESX to improve virtual performance was static transmit coalescing, which is documented on page four of one of our SPECweb papers. Large pages and SQL’s priority boost, which are best practices provided by Microsoft for SQL Server configuration, provide the largest gains in performance.”
There are several tuning tips to be found in this excellent article “Best Practices for SQL Server“, again by Scott Drummonds. As a consultant though I like to keep it as simple as possible. Which in general means that I like to keep the configuration of the VM’s the same, if you apply OS partition alignment on your Exchange Server it would make sense to apply this to all other i/o intensive VM’s. Or even better all VM’s. The same goes for other performance optimization parameters, keep it simple and document it. Not only document the changes you made, but document the impact it has on your environment and how you observed the performance differences. A good starting point would be this collection of articles on the principles of “virtual system performance“, again by Scott Drummonds.
I’ve read most of Scott’s posts just to get a better understanding of scheduling, esxtop, ready time and performance issues in general and they helped me out several times. You can use all the tools you want, but you will still need a good understanding of what a specific counter represents, and what you are actually measuring and observing. Still to be honest, I hardly have any customers that ask me questions on hypervisor performance. Of course they want a decent performance, but foremost they want:
- Flexibility
- Availability
- Scalability
As a consultant I care about these three the most, again a decent performance is important but in the end it comes down to what kind of business value your products and or services offer.
rbrambey says
Duncan says I should stick to what I do best. Check out my opinion about “the benchmark”: http://vmetc.com/2009/03/19/my-rant-about-the-benchmark/
Raakesh Nagarajan says
Hi Duncan, I have been looking out for the complete list of counters of an entire VMware infrastructure. However, I have been pointed to performance metrics which do not show case the exhaustive list of counters.
Can you please help with figuring out the possible source which provided the comprehensive list of counters, their thresholds and description.
Thank You