CPUReserve - A tool for isolating performance at user level
CPUReserve is a user-level tool that provides performance isolation to applications without the need for code recompiling. The tool allows the reservation of time slices within constant periods of time and the usage of part of the processors in multi-processed machines. According to a configurable scheduling policy, CPUReserve manages processes through system calls that dynamically change priorities of processes. Since the priority manipulation limits the decision space of the kernel scheduler to a subgroup of the system processes, it causes the processes to consume more or less processing in a given time span.
Considering CPUReserve's characteristics, the authors believe that it can be useful in a broad range of situations, including when reservation is desired for isolating performance, saving energy in mobile devices and large scale clusters, reducing the heating produced by machines, and providing different testbeds for scalability tests.
There are some functionalities that the authors would like to add or improve in the tool. The first is to extend the usage limitation mechanism to disk and network resources. They also intend to develop a probing API to be used by applications that need to have more control over the resources being used. This API could enable the set of reservation parameters to a part of a process code and not just to the process as a whole, as the current version of CPUReserve does. The relation between resource usage control and the energy consumption is another problem the authors would like to investigate.