Skip to content

a2jensen/dynamic-resource-controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

Dynamic Resource Controller

Built using purely Linux Cgroups.

Important Commands

cd into /http_server: we installed air-verse

go build -o out && ./out

compiles a binary to out and will run it the build is successful.

Testing

Within /resource_controller.

./scripts/full_run.sh -params

example:

./scripts/full_run.sh process1 process3

What it does:

  1. Compiles and inits processes, saves their PIDS
  2. Compile and init the controller, passing in the PIDS init cgroups for the processes
  3. Controller runs for the set duration(configrable in main.go in test_controller/main.go) and prints cgroup stats to stdout as well as to a log file in /logs

cleanup the processes and cgroups via:

./scripts/cleanup.sh

Testing applications/processes are in their respective folders /processX. ./process2 and ./process3 correspond to their low CPU util workloads and their rate can be adjusted in the main function via rand.Intn(x).

Workload

Test 1 logs/run1.log and logs/run2.log correspond to the workloads for test 1.

Test 2 logs/run7.log and logs/run8.log correspond to the workloads for test 2.

Test 3 logs/run9/10/11 correspond to the workloads for test 3.

The stats listed within the write up graphs are fonud at the very end on the last set of stats printed.

About

Golang Resource Controller built using Linux Cgroups.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors