Schedulers in FreeBSD 7.0
Higher performance has been found with the new scheduler SCHED_ULE in FreeBSD 7.0. This requires selecting SCHED_ULE as the scheduler instead of the default 4BSD scheduler (SCHED_4BSD) in the Kernel configuration file (GENERIC or the custom one) prior to Kernel build. You can find more details on building FreeBSD Kernel here and here.
As in the src/sys/conf/NOTES, SCHED_4BSD is the historical, proven, BSD scheduler. It has a global run queue and no CPU affinity which makes it suboptimal for SMP. It has very good interactivity and priority selection. SCHED_ULE provides significant performance advantages over 4BSD on many workloads on SMP machines. It supports cpu-affinity, per-cpu runqueues and scheduler locks. It also has a stronger notion of interactivity which leads to better responsiveness even on uniprocessor machines. This will eventually become the default scheduler.
Some pointers:




