HTFS - High Throughput Fair O(1) CPU Scheduler

For my bachelor thesis I started developing a new O(1) scheduler as a replacement for the Completely Fair Scheduler. The main goal was to achieve fairness and higher throughput. Currently I am improving the scheduler and solving some multi core problems. I started this project for my bachelor thesis, which is already finished. The following results show the performance of the scheduler in the version for the bachelor thesis.

More results will follow with better versions for multi core systems.

For the evaluation I used the Phoronix Test Suite.

Performance of Bachelor Thesis Version

Here are some selected benchmark results of HTFS compared to CFS. HTFS uses the CFS load balancing algorithms on multi core system. But as already mentioned, there is a small problem. So to see the real performance benefits of HTFS, I am using single core results for comparison with CFS.

Single core Linux kernel compile time

Starting with the standard kernel compilation benchmark. HTFS is 2.94% faster than CFS, which is similar to all other tested compilation benchmarks.

Single core Apache Benchmark

HTFS achieves 1.36% more requests per second in the Apache Benchmark.

Single core Hackbench with 100 processes

Single core Hackbench with 300 processes

At the moment HTFS is not in all of the benchmarks better. As you can see in Hackbench with 100 processes it is worse than CFS. With a higher number of processes HTFS is faster.

Single core Hackbench latency

This is a latency monitor for the Hackbench test with 300 processes. The latency is measured by a task, which wants to sleep for exactly 0.25 seconds. The deviation from this sleeping time is the latency shown in the figure. You can see that CFS has trouble giving the measurement process fast enough time on the processor while 300 processes are running in the background. In average CFS’s latency is 4.2 seconds. HTFS can achieve a maximal latency of 65ms.