Transparent, Thermal Balancing of Virtual Machines in Multicore Systems

  • Forschungsthema:L4Ka
  • Typ:Studienarbeit
  • Datum:19.10.2007
  • Betreuung:

    Prof. Dr. Frank Bellosa, Jan Stoess

  • Bearbeitung:Christoph Klee
  • Links:PDF
  • Abstract:

    Multicore architectures are employed more and more in todays system. A main task of current operating systems is to equalize the load of each CPU's core, it is accomplished by the migration policy of an operating system. Nevertheless, the migration policy of an operating system is mostly entangled in the kernel. Thus, migration policies of guest kernels running within virtual machines may contradict each other. Therefore, virtualization must break up applied policies from guest operating systems.

    A virtual machine monitor allows to perform migrations independently of a guest. Thus, a virtual machine monitor can apply its own migration policy in order to fulfill system-wide requirements.

    This thesis considers to load balance the power consumption of the cores of a CPU to decrease the overall emitted temperature as well as to reduce the system's power consumption. Therefore, our thermal balancing policy exchanges a virtual CPU with one consuming less power.

    In order to determine a virtual CPU's power consumption, an energy accounting mechanism accounts each core's power consumption that can be assigned to a virtual CPU. To predict a virtual CPU's power consumption successfully for the next period, it is necessary that it does not change significantly. Thus, a core's power consumption is accounted and a virtual CPU is migrated very frequently.

    Experimental results show that the overhead caused by migrating a virtual CPU up to a thousand times per second is acceptable but not negligible.


      author = {Christoph Klee},
      title = {Transparent, Thermal Balancing of Virtual Machines in Multicore Systems},
      type = {Study Thesis},
      address = {System Architecture Group, University of Karlsruhe, Germany},
      month = oct # "~19",
      year = 2007,
      url = {}