Skip to content

Demonstrate various features of Linux resource control in a self-contained package.

License

Notifications You must be signed in to change notification settings

htejun/resctl-demo

This branch is 270 commits behind facebookexperimental/resctl-demo:main.

Folders and files

NameName
Last commit message
Last commit date
Oct 9, 2020
Jun 23, 2021
Jun 23, 2021
Jun 21, 2021
Jun 21, 2021
Jun 23, 2021
Jun 23, 2021
Jun 23, 2021
Jun 21, 2021
Oct 23, 2020
Oct 9, 2020
Oct 23, 2020
Jun 19, 2021
Nov 21, 2020
Oct 9, 2020
Oct 22, 2020
Jan 13, 2021

Repository files navigation

resctl-demo logo

Resource control aims to control compute resource distribution to improve reliability and utilization of a system. The facebook kernel and container teams have been intensively researching and implementing mechanisms and methods to advance resource control. resctl-demo demonstrates and documents various aspects of resource control using self-contained workloads in guided scenarios.

resctl-demo in action

Getting Started

Comprehensive resource control has many requirements, some of which can be difficult to configure on an existing system. resctl-demo provides premade images to help getting started. Visit the following page for details:

https://facebookmicrosites.github.io/resctl-demo-website

Discussions

For discussions around resctl-demo and resource control in general:

https://groups.google.com/g/resctl-demo

Requirements

The basic building blocks are provided by the Linux kernel's cgroup2 and other resource related features. On top, usage and configuration methods combined with user-space helpers such as oomd and sideloader implement resource isolation to achieve workload protection and stacking.

  • Linux kernel >= v5.10

  • cgroup2

  • btrfs on non-composite storage device (sda or nvme0n1, not md or dm)

  • Swap file on btrfs at least as large as 1/3 of physical memory

  • systemd

  • oomd

  • python3, findmnt, dd, fio, stdbuf, gcc, ld, make, bison, flex, pkg-config, stress, libssl, libelf

Building

$ cargo build --release

Installing resctl-demo

$ sudo ./install.sh /usr/local/bin

Running resctl-demo

$ sudo systemd-run --scope --slice hostcritical.slice --unit resctl-demo /usr/local/bin/resctl-demo

License

resctl-demo is apache-2.0 licensed, as found in the LICENSE file.

About

Demonstrate various features of Linux resource control in a self-contained package.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 82.9%
  • R 11.2%
  • Python 5.8%
  • Shell 0.1%