Challenges in deploying high performance and sophisticated applications on virtual servers

July 2, 2010

Server Virtualization is a great strategy to optimize and maximize the utilization of resources. In a big organization, utilization of more than 50% of servers are not more than 20-40%. Server virtualization allows deploying multiple applications on a single server and maintaining the clear separation of the deployment environment at the same time. However, not all kind of applications are good candidates for server consolidation, specially high performance applications and sophisticated applications that require special hardware.

Strength of virtualization is sharing of resources. This strength becomes the problem in hosting high performance applications on virtual servers. Virtualization servers (OS) has its own rules and policies to allocate resources among the applications hosted on it. Usually, high performance application requires prioritized access to the hardware resources. If there is another non-critical application deployed in a virtual server on the same machine, the high performance application will have to struggle with non-critical application to get resources. Also, virtual server (OS) consumes some portion of CPU itself. All these factors result in lower resource allocation to high performance application resulting in degraded performance. Therefore, it is not advisable to deploy a high performance application on a virtual server.

There are sophisticated applications that are dependent on specific hardware such as video-card, encoder, decoder, etc. It is difficult to integrate these hardware with a virtual machine. Also, the virtual machine supplier may not provide warranty/support for these hardware. The most of virtual server software does not support access to third party hardware. The virtual machines are a kind of closed system. Also, the virtual video card does not support advanced acceleration video, making virtual machines not suitable for graphic intensive applications.

Also, virtual machines have limitation on the size of memory and CPU. At present, virtual machines support single or at most dual processors with a maximum memory of around 4 GB. This limits deployment of applications that require more resources.

Server virtualization has its own benefits in cost saving and maximizing the utilization of hardware. However, it is good for non-critical (most of time) and low performance applications. An enterprise has majority of applications that fall in this category. Therefore, an enterprise should plan for virtualization, but not for all applications. Before rolling out server consolidation and server virtualization program, the enterprise should evaluate the pros and cons of virtualization, classify type of applications for deployment on virtual machine, create a strategy & plan.