Abstract
In recent years, Information Technology (IT) has grown into a sector that is both as vital and, or possibly even more, resource consuming as Aviation. Combined with our ever-growing dependence of IT, the resulting energy costs as well as the inevitable depletion of materials, such as fossil fuels and rare
... read more
earth materials, have driven the need for more sustainable solutions, both environmentally and economically. Consequently, the body of knowledge on IT Sustainability, or Green IT, is steadily growing, which has mainly yielded solutions for making hardware less resource costly and possibly more energy efficient. However, software can be seen as the true consumer of energy. As the design of software greatly determines the specific utilization of hardware components, during operation, software architects have the potential to influence the sustainability of software. However, this potential is yet inaccessible due to the lack of architectural tactics that address sustainability, let alone proper metrics to determine and validate the energy consumption of software. Hence, this research attempts to develop metrics for the operational energy use of application software and, subsequently, apply them to determine relations between software design decisions, system workloads and impacts on the energy use of software products, independently of systems. To achieve our primary objective, we measured the power consumption of different computer systems during base, application and maximum workload intervals, while in the meantime we also recorded the performance of the systems. The performance data was used afterwards to determine whether a specific measurement was acceptably clean (e.g. minimal amount of noise). Then, after collecting a sufficient amount of clean measurements, we applied a subtractive method to filter out unrelated base power consumptions and determine the operational energy use of an application. Two applications were used in this research to develop the metrics. First, we performed initial experiments with a CPU-intensive stress test application, which has a relatively simple workload and power usage profile. After this, we further evaluated the metrics by performing a case-study with a document batch processing application, which has a more complex design and deployment. To improve the reliability of the measurements, we remotely operated and monitored the test systems and we performed multiple iterations, or runs, per specific measurement to minimize the influence of noise. In addition, we considered different configurations, or versions, of the test applications to enable the analysis of architectural decisions, such as single vs. dual-core processing. Based on our findings, we propose a set of metrics that can be used to determine more precisely which portion of the system’s energy usage belongs to the execution of an application. Also, the metrics show that, although the total amount of energy which different systems require to execute an application may differ greatly, the operational energy use of the application can still be fairly similar. Lastly, it shows that multi-core processing often requires more power yet less total energy.
show less