Browse Prior Art Database

Method to manage resource affinity while scaling vertically in a cloud computing environment

IP.com Disclosure Number: IPCOM000234981D
Publication Date: 2014-Feb-20
Document File: 4 page(s) / 76K

Publishing Venue

The IP.com Prior Art Database

Abstract

The article presents a unique approach to vertical scaling to increase a particular set of resources in a running OS by discreet steps. In combination with the vertical scale event, a new instance of the application is created to run exclusively in the new resource space that has been allocated. The approach optimizes the reactivity time of a scaling event, resource overhead and application performance.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 51% of the total text.

Page 01 of 4

Method to manage resource affinity while scaling vertically in a cloud computing environment

Vertical scaling (or "Scale Up") is a known technique to increase the capacity of an application by dynamically adding more of a constrained resource. The usefulness of vertical scaling is amplified in cloud computing environment, because resources such as CPU, memory, disk and network can be added to a running VM without requiring a restart. Thus, an application that requires more CPU for optimal performance can request a new virtual CPU in the running VM and immediately begin to use additional cycles.

However, there is a problem with vertical scaling that must be addressed. Some applications can only scale up to a particular amount of resource with a single instance of the application. For example, a particular WebSphere* application may have ideal performance when running with 4 virtual CPUs. Adding more virtual CPU beyond4 will not improve the application's performance, and in fact may reduce the performance due to additional lock contention. Even if a new instance of an application is created to run alongside the existing application, the two applications may not run optimally across the larger set of resources. For example, it is well known that JVM based applications conflict with each other when many instances run concurrently on a large system. This is due to OS scheduling across a large number of CPU/memory resource and cache thrashing that occurs with many JVMs.

The alternative to this problem is to create new OS instance (horizontal scale, or scale out) in order to host the application in a better suited environment. This comes with the drawback of memory and management overhead due to larger number of OS instances. So, it is very desirable to grow an existing OS instance yet still maintain optimal performance expectations of the application as the resources scale up.

A unique approach to vertical scaling is to increase a particular set of resources in a running OS by discreet steps. In combination with the vertical scale event, a new instance of the application is created to run exclusively in the new resource space that has been allocated. For example, an initial configuration of a VM is running an instance of an application, A1 with 4 CPU and 2GB memory. A vertical scale event occurs to the next step size and the VM is increased to 8 CPU and 4GB memory, and application instance A2 is created. Application A1 has affinity to the original 4 CPU / 2GB resource, and application A2 has affinity to the new 4CPU / 2GB resource.

Novelty...