Idea: Assigning CPU/memory at runtime in VM XenApp management

Idea: Assigning CPU/memory at runtime in VM XenApp management   

Mohd Aslam

1.   Introduction

The purpose of this document is to describe an idea of Assigning CPU/memory at runtime in VM Citrix management.

2.   Current Configuration/scenario

Suppose there is a company A and they have a time card website Web A for maintaining different charge code and time against them. After doing its load analysis, it is found that it will require 5 dedicated virtual servers with load balancing to host it so that at maximum load, website should behave as expected in terms of speed. Since this is a time card website, its maximum load is centered towards a particular part of the week and rest of the days its load is quite low. Let’s say, on Friday it has 70% of load and rest of the week it has 30% of load. Now since we have already allocated 5 dedicated servers, we have to pay for them even we are not utilizing them most of the time throughout the week so in short we are not 100% utilizing the resource allocated that could be utilized for some other important computations.

Advantage of this scenario:

Simplicity:    We can assign n number of servers and they can be easily load balanced to provide maximum speed to users.

Disadvantage of this scenario:

    Under-Utilization: As described above, we may end up in utilizing the allocated resource 40-50% of the time.

    Cost: Server utilization/access needs to be paid when we are using them and when we are not using them at all.

3.   Recommended Approach:

How to reduce the resources like servers without reducing the overall computational power and the profitability?

Idea is to allocate the required CPU/memory by the infrastructure management tool like XenCenter at run time.

Let me explain it. For Web A, rather than assigning 5 dedicated VMs at the beginning, let’s start with just one dedicated virtual server with one CPU and minimum memory and as the load increases, XenCenter will allocate additional CPU/memory. Since it is already been calculated from load analysis that at maximum load 5 dedicated servers will be required, so at most on maximum load, XenCenter will allocated 5 CPUs and that only on that particular pay day, rest of the days it could just allocate one or two servers as required. This way we can save most of the CPU and memory and that can be used/shared for other computations.

Advantage of this scenario:

Utilization: CPU/memory will be assigned/acquired on demand/runtime, they will be utilized for the maximum extend.

     Cost: Server utilization/access needs to be paid only when we are using them. When we do not require them they will not be assigned for the application and so not will be charged.

Disadvantage of this scenario:

    Over-head: If not properly planned and configured, assigning CPU/memory at runtime could be difficult to manage. It could end up in some delays.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s