ASAysha Shafiq
← All project blogs

How I compared Linux EEVDF and CFS under CPU contention

I used controlled workloads and eBPF traces to understand when Linux's newer scheduler improves responsiveness, and when longer, uninterrupted CPU time matters more.

STAT_014–6× lower p99.9 wakeup latency with EEVDF
STAT_02Up to 65% higher Redis GET throughput
STAT_03eBPF traces connected behavior to results

I wanted to know what “more responsive” meant

Linux replaced CFS with EEVDF to provide fairer, more predictable scheduling. I wanted to see what that meant for work people actually notice: a server answering requests, a video playing smoothly, or a compression job finishing under heavy load.

I ran controlled experiments on bare-metal CloudLab machines while increasing CPU contention. I measured application behavior across Redis, an HTTP server, video playback, compression, and scheduler latency.

The results depended on the workload

EEVDF was much stronger at the long tail. At high contention, its 99.9th-percentile wakeup latency was four to six times lower than CFS. It also delivered up to 65% higher Redis GET throughput when the competing tasks had equal priority.

But CFS sometimes won on throughput and video playback. Waking a task quickly did not always give it enough uninterrupted time to finish useful work. That was the part the headline metrics could not explain by themselves.

eBPF showed me why

I traced scheduler wakeups, context switches, and virtual lag with eBPF. The traces showed that EEVDF often dispatched work promptly but split it into shorter runs. CFS could allow longer bursts, which helped workloads that depended on cache locality or needed enough continuous CPU time to complete a frame.

The study gave me a more useful answer than declaring one scheduler the winner. EEVDF provides more predictable responsiveness under contention; CFS can favor uninterrupted throughput. The right choice depends on whether a workload values fast wakeups, longer runs, or a balance of both.

Next articleHow I brought Textual apps to SSH with Textish