Giter VIP home page Giter VIP logo

awesome-linux-schedulers's Introduction

Awesome Linux Schedulers Awesome Linux CPU Schedulers

An Awesome & Curated List of Schedulers for Linux.

Contents

Official Linux Kernel CPU Schedulers

  1. CFS: Completely Fair Scheduler - The default process scheduler used in the Linux kernel since version 2.6.23. It is designed to provide fairness and good overall system performance, especially in multi-core systems, with it's "fairness" mechanism.
  2. EEVDF: Earliest Eligible Virtual Dealine First - Designed to run the processes with the earliest virtual deadline first, for providing low-latency.

Community-Developed CPU Schedulers

  1. BORE: Burst-Oriented Response Enhancer - Enhanced version of CFS and EEVDF, designed to provide high performance while delivering resilient responsiveness to user input under as versatile load scenario as possible.
  2. Baby - Designed to be very basic and lightweight without compromising performance by disabling a lot of features. Great base ground CPU scheduler on Linux for educational purpose.
  3. TT: Task Type - Designed to detect tasks types based on their behaviors and control the scheduling based on their types, resulting in to have more control over the task to run next on the CPU.
  4. MuQSS: Multiple Queue Skiplist Scheduler - Designed to improve system responsiveness and reduce latency, especially in desktop and interactive workloads.
  5. BFS: Brain Fuck Scheduler - Designed to be simple and minimalistic, it is an experimental process scheduler designed for low-latency and improved desktop interactivity.
  6. CacULE - CFS patchset that is based on interactivity score mechanism which is inspired by the ULE scheduler (FreeBSD scheduler), for enhancing system responsiveness/latency. Performs better with it's own experimental load balancer called RDB (Response Driven Balancer).
  7. Cachy - Earlier generation/version of CacULE.
  8. PDS-MQ: Priority and Deadline based Skiplist multiple queue - Designed with VRQ (Variable Run Queue) support, derived from BFS: Brain Fuck Scheduler.
  9. BMQ: Bit Map Queue - Design based on existing PDS development experience and inspired by the scheduler found in Zircon by Google.

Multiqueue I/O Schedulers

  1. BFQ: Budget Fair Queueing - Designed to improve storage I/O performance, especially for block devices like hard drives and solid-state drives (SSDs), with ability to provide low-latency and fairness for I/O operations.
  2. Kyber - Introduced in version 4.12. It is designed to improve storage I/O performance, especially for modern non-rotational storage devices like solid-state drives (SSDs) and eMMC storage, with low overhead.
  3. mq-deadline - Adaptation of the legacy deadline scheduler, for the blk-mq scheduling framework, it is designed to group queued I/O requests into batches.

Non-Multiqueue I/O Schedulers

  1. deadline - Introduced in version 2.4.10 and is designed to optimize I/O performance for both rotational (e.g., traditional hard disk drives) and non-rotational (e.g., solid-state drives) storage devices, focusing on meeting I/O request deadlines.
  2. noop: No-operation - Designed to be a simple and minimalistic scheduler that works effectively with certain types of storage devices, particularly with modern non-rotational storage media like solid-state drives (SSDs). It's very minimalistic and lacks scheduling overhead.
  3. CFQ: Completely Fair Queueing - Designed to provide fairness and good overall system performance, especially for rotational storage devices like traditional hard disk drives (HDDs), focusing on fairness among processes accessing storage devices.

Resources

  • Project C - A project to provide BMQ and PDS-mq cpu scheduler in one single patch set.
  • CK Kolivas' Patches Web Directory - CK's web directory providing MuQSS, BFS and other patchsets.
  • Linux Baby - Linux kernel with baby patchset applied.
  • Linux CachyOS - Linux kernel with various patchsets applied including bore, eevdf, TT, BMQ, PDS, CacULE+RDB and CFS.
  • Xanmod Kernel - Custom linux kernel built to provide a stable, smooth and solid system experience.
  • linux-pf - Maintained by a kernel engineer (post-factum), contains patchsets not merged into the official kernel mainline.
  • Zen Kernel - Result of a collaborative effort of kernel hackers to provide the best Linux kernel possible for everyday systems.
  • Liquorix Kernel - An enthusiast Linux kernel designed for uncompromised responsiveness in interactive systems, enabling low latency compute in A/V production, and reduced frame time deviations in games.
  • Kernel patches by Sir lucjan - Curated custom Linux kernel patches.
  • clearlinux-pkgs/linux - Linux kernel patches by clear linux optimized for Intel systems.
  • linux-nitrous - Linux kernel with patchsets optimized for Intel Skylake and newer systems.

awesome-linux-schedulers's People

Contributors

tanvirongh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

nrjcs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.