Best Practices to Improve the Virtual Database Server Performance

By CIOReview | Thursday, August 24, 2017

With the era of virtualization and cloud computing, database servers are also being virtualized these days. Today, deploying a database server on virtual machines has become a common practice across organizations today. However, these implementations if not performed in the correct way, leveraging the best practices, will not provide the best result. Take a look at some of the best practices and techniques that can be adopted while deploying and using a database on a virtual machine.

1. Memory

Most of the database servers use memory balloon drivers that are normally installed in the guest computer, allowing the host operating system to recollect physical memory from the guest operating system for use of any other virtual machine or the host.  But, when a memory pressure is analyzed by a host, it makes use of a balloon driver to flush data from the memory for further reallocation. At times, administrators disable the memory balloon driver on guest machines running SQL Server that can result in a memory starvation. This happens as the host operating system fails to recollect the memory from a guest, thereby making the host operating system to swap large amounts of memory from the physical RAM to the host’s swap file.

2. CPU

Oversubscription of CPU cores is a common issue while running a database server in a virtual machine as there might be too many virtual machines sharing the same physical CPU core. This can result in latency in the client operating system. Take a look at the %USED numbers as these digits represent the amount of workload and the CPU usage of each core. If any of the CPU usage values are going above average regularly, this shows the oversubscription of the CPU in cores. Moreover, take a historical look at these data to have a better idea of the CPU usage by various resources.

3. Storage and Duplicate Data

Storage is another important area of consideration as well as that needs critical care in a virtual environment. Be careful while sharing content with a single storage in the virtual environment as not all space can be shared. Moreover, storage of a database server that handles heavy load has to be implemented and configured just like it would be in the physical world. LUNs will probably need to be carved up from a dedicated RAID group if your array supports dedicated RAID groups or a semi-dedicated Fully Automated Storage Tiering (FAST) pool if you’re using a newer EMC array. Ensure that the number of read and write operations are not reduced or increased with the transformation of the database to a physical server.

If your storage array supports online or live data deduplication, using it can help improve overall environment performance. Moreover, the deduplication of operating systems can obviously save a large amount of space as the Windows operating system is almost similar in each server.

De-duplicating OS disks can save a lot of space because so much of the Windows OS is the same from server to server. As the virtual disks are pointed in the physical block direction, the array has to load the block a single time into the memory, which leaves a lot of extra space for other more important data in the array’s cache.

Always keep an eye on the virtual environments key aspects like data usage, memory usage, and data allocation. These are the elements of rating represents the proper functioning of the whole system. Moreover, be informed that not all databases can be virtualized. Identify the user requirements and deploy the best database server that can work effective in the particular virtual environment.