Monday, April 28, 2014

Elastic Cloud vs. Not-So-Elastic Cloud: CPU Over-subscription

This is Part III in my series of articles about implementing Exalytics as a private cloud. The first two that laid the groundwork for this concept are:
Part I – Exalytics: The Promise of BI on Private Cloud
Part II - Classify the Exalytics Application Requirements and Cloud Offerings
The idea is to create a system which can host various OBIEE/EPM implementations and can adjust according to the current load and the VM’s priority/quota. Each VM is assigned a range of resources from the available pool. Instead of saying that a VM can have 2 cores/CPU, we can virtualize the resources by creating a virtual unit?the vCPU?and allocate available threads.  This vCPU is the key ingredient in an elastic cloud.
vCPU to Physical Threads Ratio
vCPU Configuration - EMOC vDC Management

 We allocate to each VM the resources it needs to run optimally. However, instead of assigning an absolute number of resources, it is done virtually in terms of CPU threads rather than cores. This allows two important things: 
dynamic reallocation of the resources at runtime without the need to recycle the server
VMs compete for the CPU cycles/threads on the basis of priority allocated to them at design time.

 If we have a VM hosting the EPM Suite, another VM hosting BI for the North America, and another VM hosting BI for the Asian operations, we can schedule the priority of the North America VM and the Asian server to be high priority based on time of operations. The EPM server can have overall priority so that users on the EPM server will get a better throughput whenever they are on.
Account  Resource Limit
Account Resource Limit

 One caveat is that the vCPU memory and storage quotas (Account Resource Limit) are set at the account level rather than at the VM level. This enables a cloud user to create multiple VMs within the quota allocated to them.

 The vCPU priority and cap are defined when creating VM profiles.

VM Profile - vCPU priority and Cap
VM Proile - CPU Priority/Cap

 This profile will be used to define a VM hosting a service which can run in the background and yield to a higher priority task when needed. A deployment plan is created with this profile and applied while creating a virtual machine.

When creating a new VM Server, the following can be applied to benefit from a real elastic cloud implementation:

1. Change the CPU/vCPU ratio
2. Configure an Account Resource Limit for individual accounts
3. Create VM profiles with vCPU priority

Further explanation of this concept can be found in Donald Forbes’s article on  Exalogic and CPU Oversubscription.

Architect - Oracle Engineered Systems
BuzzClan LLC

BuzzClan is a business consulting company collaborating to provide Oracle software advisory services & implementation services. BuzzClan LLC is committed to providing substantive business value on each and every client engagement. We do this through a combination of industry-specific business expertise, technical skills, proven project management methods and our “onsite - off site - offshore” delivery model. We strive to work in partnership with our customers to build high-performance teams and create business solutions that will last.

No comments :