Software Energy-Efficiency: Resource Allocation Tactics

Max Meinhardt
4 min readMay 25, 2023

--

Software energy-efficiency resource allocation tactics encompass strategies that involve allocating and de-allocating resources to distribute processing time effectively and minimize overhead.

The content of this article builds upon the software energy-efficiency Resource Allocation category introduced in the first article of this series on software energy efficiency.

Photo by CHUTTERSNAP on Unsplash

Scaling (cloud-specific)

The impact of energy usage on resource scaling (auto scaling) depends on how the cloud provider implements the underlying resource orchestration. In certain cases, the implementation may involve pre-allocation of resource bandwidth, such as when using reserved instances. This means that specific attributes (such as instance type or region) have their on-demand resource bandwidth pre-purchased within the cloud, resulting in discounted pricing. On the other hand, in situations like AWS spot instances, unused on-demand cloud storage capacity can be purchased at a discounted rate.

While both examples demonstrate a direct correlation between energy utilization and cost savings, there are some considerations to keep in mind. In the former case, if the sizing is not periodically evaluated, it can lead to increased overhead. The latter option is cost-effective only if you have flexibility in determining when your application runs since its pricing is influenced by the existing demand for the service, which can vary throughout the day.

When optimizing energy efficiency, it is crucial to adhere to the best practices of the orchestration environment when configuring both vertical and horizontal auto-scaling functionality.

Scheduling

To optimize power consumption and minimize the impact on energy usage, it is crucial to optimize the scheduled timing of process-intensive activities and resource deallocation based on traffic patterns. A cloud-based strategy example involves utilizing the AWS AMS Resource Scheduler [1] to automatically schedule the start and stop of Amazon EC2 instances, as well as scaling of Auto-scaling groups [2], prior to expected changes in traffic patterns.

For OS-specific scheduling, it is advisable to configure tools like cron to execute necessary tasks only during intervals when its system has the lowest load. By scheduling these tasks during periods of the day when the application experiences the lowest throughput, the likelihood of energy-inefficient events, such as network collisions, is reduced. This approach helps to mitigate the potential impact on power consumption.

Service Brokering (cloud-specific)

Photo by Erik Mclean on Unsplash

According to Gartner [3], a cloud service broker (CSB) is an “IT role and business model in which a company or entity adds value to one or more cloud services (public or private) on behalf of consumers of those services. The CSB performs three primary roles: aggregation, integration, and customization brokerage.” There are three main types of CSBs: cloud aggregator, cloud integrator, and cloud customizer.

A cloud aggregator integrates multiple service catalogs, while a cloud integrator automates workflows across hybrid environments through a single orchestration. On the other hand, a cloud customizer modifies existing cloud services and adds new ones based on customer requirements.

Implementing a CSB can lead to cost and energy savings by reducing the allocation of unused cloud services that would otherwise go to waste if purchasing packaged feature sets that include unnecessary services. By leveraging a CSB, companies can optimize resource utilization and avoid unnecessary energy consumption.

Conclusion

This article covered software energy-efficiency resource allocation tactics, including processing time distribution, overhead reduction, cloud resource scaling, evaluation considerations, scheduling optimization, and the role of cloud service brokers. Implementing these strategies promotes software energy efficiency and cost savings.

Articles in this series

The following articles are part of this comprehensive series that delves into energy-efficient tactics in software architecture and implementation. The first article shown below contains a diagram that is described in the remaining four articles.

References

[1]: Amazon Web Services. How the AMS Resource Scheduler works.
https://docs.aws.amazon.com/managedservices/latest/userguide/resource-scheduler-how-works.html. accessed on 2022–06–25.

[2]: Amazon Web Services. Scheduled scaling for Amazon EC2 Auto Scaling.
https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scheduled-scaling.html. accessed on 2022–06–24.

[3]: Gartner Glossary — Information Technology.
https://www.gartner.com/en/information-technology/glossary/cloud-services-brokerage-csb, accessed on 2022–06–25.

--

--