Compute Utilization Efficiency (High Load)

Compute Utilization Efficiency (High Load)

Newvem continuously monitors servers’ CPU load and notifies on high CPU loads.  We consider an average CPU load of 80% and above as a high load. As high CPU load can lead to a major service availability risks, which results in service degradation. In order to protect the system one should consider changing the instance size or implementing a different scaling method. We suggest that you either:

  • Scale up your computer instances – vertical scaling; move your workload to larger servers.
  • Scale out your compute instances – horizontal scaling; use additional servers.
  • Auto-scaling – AWS offers the ability to dynamically and automatically scale up or down according to conditions you define. With Auto Scaling, you can ensure that the number of Amazon EC2 instances you’re using increases seamlessly during demand spikes to maintain performance, and decreases automatically during demand lulls to minimize costs. Auto Scaling is enabled by Amazon CloudWatch and available at no additional charge beyond Amazon CloudWatch fees.

> Scaling Up

Scaling up refers to adding more hardware resources, such as processors and memory. Bottlenecks caused by  an intensive growth in use by a large number of users. High loads can be also generated changes in the application layer and scripts logic and database queries and design which simply requires additional powerful computing resources. All of these can cause overloads and lead to the need to scale up. Scaling up can solve core issues, but comes with additional costs that should be taken into consideration as part of the basic assumptions of the cloud operation’s overall costs. Another issue that should be considered when architecting your system to support the availability, is that (vertical) scaling up leaves the system vulnerable with a single point of failure. You need to make sure that you have a back up in place and perform scaling out as well. The simplicity of scaling up a single resource helps companies with their first cloud adoption steps; however, it is important to change the perception of “let’s buy big to accommodate future demand”, and instead start small and use vertical scaling (even manually) to support growth, as the need arises.

> Scaling Out

Scaling out refers to the replication of web servers in a balanced model, to support an increase of concurrent client requests to maintain the application performance. This scaling method together with the “pay as you go” model enable software vendors to grow on demand and generally add more resources in proportion to their amount of new users or actual demand at any time. Generally, scaling out increases administrative efforts including time and expenses. These are usually not one-time efforts but involve ongoing maintenance, including updating the auto-scaling scripts that monitor a large amount of resources, backing them up, and more.

The following table compares the main features of the two scaling methods: 

Vertical Scaling     Horizontal Scaling
Solution Can solve core issues and system bottlenecks that create loads. Simple to perform, and helps with cloud adoption. Generally solves load of client requests on the web servers, hence supports usage growth.
Cost considerations Expensive - Scaling up in one pricing level causes additional operational costs. Scaling out usually includes adding cheap hardware resources. Maintenance will add additional costs to its operation.
Availability Single point of failure. Strengthens the system robustness.
Scalability There will be a maximum size that you can purchase. The IaaS providers aim to provide a cloud with an infinite amount of resources. There is no limit for horizontal scaling in such an optimal environment.
Provisioning The actual scaling function involves downtime. Demand should be predicted early enough so that resources provisioning can be enabled before the peak.

 

> Auto Scaling

Auto Scaling allows to scale Amazon EC2 capacity up or down automatically according to conditions you define. With Auto Scaling, one can ensure that the number of Amazon EC2 instances you’re using increases seamlessly during demand spikes to maintain performance, and decreases automatically during demand lulls to minimize costs. Auto Scaling is particularly well suited for applications that experience hourly, daily, or weekly variability in usage. Auto Scaling is enabled by Amazon CloudWatch and available at no additional charge beyond Amazon CloudWatch fees.

Identification

Our identification of the issue is based on the following data:

  •  Some servers have been experiencing high CPU load (over 80%).

Instructions

How to use Auto Scaling :If you are signed up for the Amazon EC2 service, you are automatically registered for Auto Scaling. Check the following steps:

  1. Download the Auto Scaling Command Line Tools and the Amazon CloudWatch Command Line Tools from Developer Tools.
  2. Use the as-create-launch-config command to create a Launch Configuration for your Auto Scaling Group. A Launch Configuration captures the parameters necessary to launch new Amazon EC2 instances.
  3. Use the as-create-auto-scaling-group command to create an Auto Scaling Group. An Auto Scaling Group is a collection of Amazon EC2 instances to which you want to apply certain scaling conditions.
  4. Use the as-put-scaling-policy command to describe each scaling action you want to take. For example, you can create one Policy that adds Amazon EC2 instances, and another that removes them.
  5. Use the mon-put-metric-alarm Amazon CloudWatch command to create an alarm for each condition under which you want to add or remove Amazon EC2 instances, and specify the Auto Scaling Policy that you want the alarm to execute when that condition is met. You can define alarms based on any metric that Amazon CloudWatch collects. Examples of metrics on which you can set conditions include average CPU utilization, network activity or disk utilization.
  6. Auto Scaling tracks when your conditions have been met and automatically takes the corresponding scaling action on your behalf.

Keywords: amazon cloudwatch fees, cloud adoption, cloud operation, aws auto scaling, amazon ec2 instances, aws scaling, amazon aws auto scaling.

Additional Relevant Resources

 Autoscaling

You must be to post a comment.

* As a bonus, you'll receive our weekly newsletter!

Hitchhiker's Guide to The Cloud

Newvem's eBook for Cloud Operations