Tonight I was lucky enough to be able to present to my home SQL Server Users Group in Omaha, Nebraska. I gave my presentation ‘Squeezing Top Performance from your Virtualized SQL Servers’ to a packed house. I thoroughly enjoyed the session, and hope you did too!
Recently I encountered a small glitch while trying to install VMware’s vCenter 5.5.0b Server on a new VM with Windows Server 2012R2 on it. Now, this OS is not yet ‘certified’ by VMware for use, but it’s pretty close to Windows Server 2012, and they will support it soon enough, so why not use it? But, a quirk with the differences between Windows Server 2012 and 2012R2 prevents a successful installation. Read on to see how to fix this.
Today I woke up to find that Thomas LaRock (blog | twitter | linkedin) has added me to his SQL Server Blogger Rankings list. WOW! I’m completely honored to be listed among this world-class list of the best bloggers in the industry. He created a new section on the list for ‘Virtualization’ blogs, and my friend Allan Hirt (blog | twitter | linkedin) of SQLHA and I were added to this new category. Another Linchpin People associate, Joey D’Antoni (blog | twitter | linkedin), was also added to the list to the msdb category. That makes six Linchpin People on the list!
If you are looking for the best SQL Server blogs in the world to follow, start at his list. I have been constantly updating my blogroll for years now from the recommendations made in this list. I am proud to have made it onto this list, and I will continue to bring you educational content that will help you with your business technology!
OK, so maybe they do not lie to you, but I got your attention. In virtualized environments, the performance statistics that you see from the management interface may not give you the entire picture, and can lead to bad assumptions or misleading recommendations.
Remember, the virtualization layer does not understand the nuances of the applications that you are running inside the virtual machine, so it might be giving you performance statistics that are not representative of that application.
For example, SQL Server is very memory hungry, as it uses memory to cache data reads from disk. If you give a SQL Server virtual machine 32GB of vRAM, and allocate 26GB to the SQL Server buffer pool, chances are that all 26GB is going to get consumed as your workload reads data. However, the physical host server where your VM is running might not understand this usage pattern, and might misinterpret things.
Take this scenario. I recently had to load a 20GB dataset into a SQL Server for performance statistic analysis. The data is read from disk and inserted into a new SQL Server table. At the end of the load, and because nothing else was running on that server at the time of the load, almost all of the inserted data was also now in the buffer pool. But, look at what the VMware performance counters for memory for this virtual machine reported.
You’ll notice that the active memory counter grows as the data is loaded. Once the data is loaded, however, the data resides in the buffer pool, but VMware is reporting that the memory is no longer active as the timer on the block deltas grows. During this time, I am actively performing the analysis of the data, so the data is still being read from, but just does not change. This activity is not reflected in the counter at all.
It’s not just memory either. LogicMonitor has a great writeup of the differences between Windows Perfmon sampling inside a VM versus the actual CPU usage, as reported by the physical server.
I have heard virtualization administrators tell DBAs that because these counters show that most of the memory is stale and not active, it’s OK for them to reduce the amount of memory allocated to that virtual machine. This counter is pretty misleading, and I see quite a bit of misinterpretation by virtualization administrators on this topic. Now, they should not be expected to know the specifics on the workloads executing in their environments, but understanding that this counter does not show you the entire picture is going to save everyone a lot of time during these types of discussions.
As a result, this disparity is just one of the reasons why I constantly push the process of actively collecting ongoing performance statistics from both the physical host and from inside the guest, as well as from within the application that you have running inside the VM. Correlate everything together to see the full picture of what is going on, because any single metric probably does not give you the complete picture.
UPDATE: Mark Achtemichuk (t) from VMware has previously written a great blog post on vmware.com discussing this exact topic, and he goes into greater detail on the counter. You should go check it out here!
What a terrific week! I’m have a great start to 2014! Yesterday and today I had the opportunity to present a few training sessions to some great Nashville SQL Server professionals. Yesterday I presented my all-day preconference training session ‘Virtualization for SQL Server DBAs‘ to a great group of enthusiastic attendees. Today I was lucky enough to pack the room for the ‘Virtualization 101‘ session at the SQL Saturday event. I received very encouraging feedback from both sessions, and cannot thank you enough for your kind words!
Thank you everyone who attended my session, volunteers and coordinators of the event, and everyone who took the time out of their weekend to come to this great event! I hope you all enjoyed this SQL Saturday. I certainly did! The slides from my presentation today are available for you to download here, and feel free to contact me at any time if you have any questions.
Announcing a flash sale today from 10a-12p Central time for my upcoming SQL Saturday Nashville preconference training session ‘Virtualization for SQL Server DBAs‘! Use the code ‘FlashSale‘ at the Eventbrite registration page to save 10% off of the regular registration cost of $125 plus $7.87 in Eventbrite fees.
Why should you attend this preconference session?
This session is designed for you – the SQL Server database administrator – to learn more about the virtualization technologies that are here to stay. Whether you or hesitant on virtualization or have already virtualized your SQL Servers, learn more about how to build the SQL Server environment with the most redundancy, performance, and scalability in mind.
VMware vExpert and SQL Server performance expert David Klee leads this full-day, hands-on introduction to enabling and managing a virtualized SQL Server environment. The focus of the course is to help those new to virtualization and/or infrastructure concepts to become familiar with the concept and purposes of virtualization and how it can benefit them as data professionals. Participants will gain exposure to all layers of virtualization underneath SQL Server, from storage to hypervisor to the SQL Server instance, and will learn how to construct the entire stack with the focus on SQL Server performance.
Upon completion of this course, attendees will be able to:
- Understand key virtualization and cloud concepts
- Determine the optimal infrastructure configuration for best performance
- Construct a SQL Server virtual machine template with best practices for agility and performance
- Understand how and what stack metrics to benchmark and baseline to ensure proper objective performance measurement
- Identify and remediate common virtualized SQL Server performance killers
- Understand proper virtualized capacity management techniques for long term management
Even if you cannot attend this preconference session, please register for the Nashville SQL Saturday event! I am presenting a session geared towards virtualization education at 1pm in Room 110 entitled ‘SQL Server Virtualization 101′. I can’t wait to see you there!