Energy-Efficient CPU Driver Demonstrator For Linux

The goal of the project was the development and implementation of a CPU frequency control mechanism which optimises electrical energy consumption

  • Project name: Energy-efficient CPU driver demonstrator for Linux
  • Source of funding: NASK
  • Project goal: Development and implementation of a CPU frequency control mechanism which optimises energy consumption for selected Linux application servers.

Linux offers several mechanisms for reducing electrical energy consumption The most effective of these are CPU frequency scaling mechanisms implemented in the cpufreq module. The module constitutes an intermediate layer between hardware CPU drivers controlling voltage and frequency and software drivers responsible for implementing the designed control policies at the OS level.

Software drivers made available by the Linux kernel are free to use and support a wide range of hardware architecture. The theoretical research conducted by the NASK Research Division indicated that existing CPU control mechanisms can be improved. The new tools allow for server performance optimisation via adjusting CPU frequency and voltage to the services made available by the operating system. This results in reduced energy consumption costs and improved server performance.
A software package was developed as part of the project which:

  • renders it possible to identify the dynamics and efficiency of the services made available by the Linux OS
  • supports the design and implementation of the Linux kernel module which optimises CPU performance.

Test results

The control mechanisms designed and implemented using the new software were then subject of experimental research. The tests were conducted on an experimental computational cluster at the NASK Virtual Internet Technologies Laboratory. The research goal was to estimate the increase in CPU control effectiveness compared to the following cpufreq module drivers: ondemand (basic CPU governor), powersave and performance.

The driver optimises the performance of the commercial version of the NGINX+​ HTTP server. Sample experiment results are presented in Figure 1.

Fig. 1: Comparison of NGINX+ server process control efficiency using various drivers

The NASK driver proved to be significantly more effective than the standard solution available in the Linux kernel.

  • The solution allowed for 13.8% faster processing of HTTP requests compared to ondemand,
  • in addition, it consumed 8.3% less electrical energy (26.8% less CPU energy) than ondemand.