# Resource-control demo agent
`rd-agent` orchestrates resource control demo and benchmark scenarios
end-to-end. It runs benchmarks to establish the baseline, manages `rd-hashd`
instances as the primary workloads, simulates resource conflicts with other
workloads, and monitors the system and workloads to generate detailed
reports.
Comprehensive resource control requires a number of components closely
working together. `rd-agent` will check all the needed features and try to
configure the system as necessary, and report all the missing pieces. The
following basic system configuration is expected.
* The root filesystem must be btrfs and on a physical device (not md or dm).
* Swap must be on the same device as root filesystem larger than half the
memory. Swapfile on the root filesystem is preferred.
* The scratch directory must be on the root filesystem.
* `systemd` is the system agent and using cgroup2.
Some of the system configuration failures can be ignored with `--force`.
However, resource isolation may not work as expected.
Configurations, commanding and reporting happen through json files under
`/var/lib/resctl-demo` by default. All files used by workloads are under the
`scratch` sub-directory. Take a look at `index.json` and `cmd.json` if you
want to explore the control files.
`rd-agent` is usually used as a part of `resctl-demo` or `resctl-bench`. For
more information on the containing projects, visit:
https://github.com/facebookexperimental/resctl-demo