Accordion is a configurable framework to vertical scale docker containers.
Stores and maintains task/host metrics.
Collect task/host metrics and store them in the corresponding metric store.
Runs as a cron job and vertically scales one or more currently running tasks. Vertical scaling involves two steps.
- Analysis of task metrics and recommendation of resource adjustments. This is performed by a component called VScalerRecommender.
- Selection of the scaling recommendations and updating the resource allocation of the respective container. This is performed by a component called VScalerResourceUpdater.
Log scaling recommendations and resource updates in csv format.
The project includes a makefile that can be used to compile, run tests etc.
Run make build executable=<name of executable> to compile build an executable.
To run unit tests, you can run the following.
- All unit tests:
make test. - All unit tests with verbose log:
make test-verbose. - Test single module:
make test-module module=<name of module>. - Test single module with verbose log:
make test-module-verbose module=<name of module>.
You can also use the makefile to format the code by running make format.
Run make build-linux to compile and build an executable that can be run on linux machines.
- Estimated values for factors in next window.
- smart recommender (provides range > 2 steps by factoring in metrics and deadlines).
- smart selector (determines #resources to take away and #resources to allocate additionally by ranking applications).