Select the right optimisation algorithm
Selection of proper optimisation and placement policies is a crucial task that can have a significant influence on the data center power consumption and performance of the hosted applications. CactoOpt provides a set of optimisation and placement algorithms wrapped in various optimisation services. Causa optimisation and placement services contain the most advanced algorithms.
Main optimisation and placement strategies:
- LOAD_BALANCING - tries to spread the virtual machines among all servers proportionally to their sizes,
- CONSOLIDATION - tries to minimize the number of servers used to host the virtual machies,
- ENERGY_EFFICIENCY - tries to minimize the total power consumption of a data center,
- FRAGMENTATION - tries to avoid wasting computational resources due to virtual machines being more CPU or memory heavy.
CactoOpt is configured by a set of configuration files located in eu.cactosfp7.configuration project.
Optimisation
The main configuration file for optimisation is cactoopt_optimisationalgorithm.cfg. Other configuration files (if apply) are relevant only for particular optimisation services.
cactoopt_optimisationalgorithm.cfg
This configuration file allows to choose the optimisation service that will be used for migrations, the algorithm for horizontal autoscaling, and enable resource control (vertical scaling). Available options are listed below.
optimisationName = Causa, Random, LoadBalancing, Consolidation, LinKernighan
autoscalerAlgorithmName = Hist, AKTE, Reg, or React
resourceControlEnalbed = true, false
The description of the autoscaler algorithms is provided in D3.3 Extended Optimization Model (http://www.cactosfp7.eu/wp-content/uploads/2015/11/D3.3-Extended-Optimization-Model.pdf pp. 23–24).
cactoopt_opt_causa.cfg
Relevant only if optimisationName = Causa in cactoopt_optimisationalgorithm.cfg.
Sets the migration algorithm used by Causa optimisation service.
algorithm = NONE, LOAD_BALANCING, CONSOLIDATION, ENERGY_EFFICIENCY, FRAGMENTATION, CP_LOAD_BALANCING, CP_CONSOLIDATION, GD_LOAD_BALANCING, HIGH_TO_LOW_LOAD_BALANCING, SINGLE_MIGRATION_LOAD_BALANCING, SINGLE_MIGRATION_CONSOLIDATION
Enables / disables the control of powering up/down physical servers.
managePhysicalNodeActions = true, false
If the control of powering up/down is enabled, the further configuration is possible by setting the following variables:
minServersOn = 2
numberOfEmptyServersPoweredOn = 1
minServersOn specify the minimum number of servers that shall be alwasy powered up and numberOfEmptyServersPoweredOn defines the size of the buffer of empty machines that shall be powered up in order to keep available resources for new virtual machines.
The description of the migration algorithms is provided in D3.3 Extended Optimization Model (http://www.cactosfp7.eu/wp-content/uploads/2015/11/D3.3-Extended-Optimization-Model.pdf pp. 36–45).
Placement
The main configuration file for optimisation is cactoopt_placement.cfg. Other configuration files (if apply) are relevant only for particular placement services.
cactoopt_placement.cfg
This configuration file allows to choose the service that will be used for placement.
placementName = causa, firstFit, bestFitCpu, bestFitMemory, loadBalancing, consolidation
cactoopt_placement_causa.cfg
Relevant only if placementName = causa in cactoopt_placement.cfg.
Sets the initial placement algorithm used by Causa placement service.
algorithm = NONE, BEST_FIT,
LOAD_BALANCING_RAM, CONSOLIDATION_RAM, CONSOLIDATION, FRAGMENTATION, ENERGY_EFFICIENCY,
MOLPRO_BEST_FIT, MOLPRO_LOAD_BALANCING_RAM, MOLPRO_CONSOLIDATION_RAM
The description of the placement algorithms is provided in D3.3 Extended Optimization Model (http://www.cactosfp7.eu/wp-content/uploads/2015/11/D3.3-Extended-Optimization-Model.pdf pp. 36–45).
MOLPRO_* placement algorithms are aware of special requirements of Molpro jobs depending on the application type (e.g., dft jobs require a computational node with a local storage).