Interbench is benchmark application is designed to benchmark interactivity in Linux.
Interbench is designed to measure the effect of changes in Linux kernel design or system configuration changes such as I/O scheduler, cpu and filesystem changes and options. With careful benchmarking, different hardware can be compared.
What does it do?
It is designed to emulate the cpu scheduling behaviour of interactive tasks and measure their scheduling latency and jitter. It does this with the tasks on their own and then in the presence of various background loads, both with configurable nice levels and the benchmarked tasks can be real time.
How does it work?
First it benchmarks how best to reproduce a fixed percentage of cpu usage on the machine currently being used for the benchmark. It saves this to a file and then uses this for all subsequent runs to keep the emulation of cpu usage constant.
It runs a real time high priority timing thread that wakes up the thread or threads of the simulated interactive tasks and then measures the latency in the time taken to schedule. As there is no accurate timer driven scheduling in linux the timing thread sleeps as accurately as linux kernel supports, and latency is considered as the time from this sleep till the simulated task gets scheduled.
Each benchmarked simulation runs as a separate process with its own threads, and the background load (if any) also runs as a separate process.