Alexei Karve explores several ways to eliminate virtual machine overcrowding on SoftLayer and explains how to find the right balance between scale up and scale out
A longtime favorite cloud expert of mine, Alexei Karve (Twitter @aakarve) is a Senior Software Engineer who's worked with various cloud technologies, including extensions to OpenStack Compute and Glance and deployment on Softlayer and multiple virtual environment implementations (OpenVZ, Xen, KVM, VMWare ESX, AIX LPARs). In a recent post on the Thoughts on Cloud blog, he describes the noisy neighbor problem in which shared hosting and overcommitment increases the density of an environment's larger virtual machines which in turn enables a small number of applications to monopolize all resources (network bandwidth, CPU, RAM and disk I/O). This can cause performance problems because disk capacity increases but read/write speed doesn't.
Karve proposes a joint solution between provider and client and explains some of the capabilities the provider (in this case, SoftLayer) may offer that both parties can use to ease this resource overcrowding dilemma, including
As a supplement to this post, Karve has also discussed horizontal and vertical scaling in relationship to the types of resources -- virtualized and shared. In "Achieving flexibility, control with SoftLayer," he explains how the SoftLayer architecture makes it almost as easy to scale up as it is to scale out. He highlights capabilities such as compute size granular control (instead of the "several sizes fit all" method), the ability to rapidly resize the resource pool for current conditions, and the ability to move images quickly between virtual and physical environments based on ever-changing conditions.
To dive even deeper into the subject of horizontal and vertical scaling, Karve explains how to find the right balance between scale up and scale out in a cloud. He introduces the concepts of reactive and proactive scaling and creates a matrix with horizontal and vertical scaling:
Workload scaling: The OpenStack component
Lots of the scaling and balancing techniques Karve describes on SoftLayer belong to OpenStack (supported on SoftLayer) and can be tremendously helpful in scaling operations. For more introductory information on OpenStack, try these resources:
Workload balancing: The SoftLayer component
To finish out this post on balancing in a SoftLayer environment, SoftLayer's Wissam Elriachy provides an excellent, code-laden tutorial on "Getting Started with SoftLayer Local Load Balancers" that explains how to use the SoftLayer API to provision, configure, and manage local load balancers. It includes information on grabbing details of local load balancers, creating and configuring them, setting up routing and checking types and methods, and then cancelling the balancer when you are finished.