# Resource Management in SDN-Based Cloud and SDN-Based Fog Computing: Taxonomy Study
## 4 SDN-Based Cloud Computing Resource Management in Energy Efficiency
It is composed of three modules responsible of cluster management including VM placement, overload detection of each PM CPU and resource prediction for each VM. The number of overloads and number of SLA violation, and power consumption are evaluated. Results show that a smaller number of overloads occurred with an outperforming on minimizing SLA violation. While for power consumption is almost similar with baseline. While a simple linear regression prediction model RobustSLR [33] is proposed to determine the utilization of server's resources (CPU) and verifies whether it is underloaded or overloaded, as well predicts future utilization of resources. Moreover, eight migration policies are proposed and evaluated. It aims to reduce power consumption as well SLA violation. evaluation is conducted in CloudSim simulation tool with two types of workloads: random and real world (PlanetLab data). Power consumption, SLA violation, overall and average SLA violation are measured. Most proposed algorithms consume less power while violating less SLA compared to baselines. However, one algorithm is an exception, although, it consumes similar amount of power energy compared with baselines but outperforms in reducing SLA violation. Similarly, predictive anticorrelated VM placement algorithm PACPA [34], which considers predictive resources prior to VM migration such that future demand is investigated in advance. It finds the suitable balance in terms of CPU utilization in order to perform VM placement. Therefore, two VMs are placed if their combined CPU requirement match the maximum demand of a specific host in order to utilizes resources. Moreover, the algorithm uses neural networks as predictive technique in order to dynamically investigate future VM placements. PACPA is evaluated in CloudSim based on energy consumption and SLA violation. It accomplishes best results regarding reducing power consumption with smaller SLA violation compared to baselines. In [35], VM consolidation algorithms are proposed in order to reduce power consumption by taking into consideration not only CPU as a major power consumption element but, also, RAM. The proposed work consists of two managers: global and centralized manager and server level local manager. Then, two algorithms are developed for VM selection and placement to avoid overloaded servers to reduce power consumption as well reduce SLA violation. Moreover, it utilized two thresholds to detect overloaded and underloaded hosts. An evaluation is conducted using CloudSim simulation tool considering power consumption, SLA violation, and performance degradation after migration with static and dynamic threshold as evaluation metrics. The results show that the dynamic threshold brought better results to proposed algorithms especially with power consumption and performance degradation after migration. However, the SLA violation rate is higher than baselines in both thresholds. On the other hand, some research focused only on power consumption. Several experiments of different policies: FCFS; SJF; different power management techniques (non-power aware NPA, power aware PA, dynamic voltage and frequency scaling DVFS), as well as different power models (linear, square, cubic and square root) are conducted in [36]. The results show that DVFS techniques consume the least power in both allocation policies FCFS and SJF. Moreover, more evaluation is conducted under different power models and results show that cubic model saves more power. Therefore, two algorithms are proposed based on experimental findings the that are DFCFS and DVFS. Comparison between the two proposed algorithms is performed which show that DVFS consumes less power than DFCFS. Whilst PDM [37] is a centralized manager developed for power distribution in cloud datacenters by implementing a minimization cost function, linear optimization model, for uninterruptable power supplies UPS. The manager collects power consumption needed for resources (CPU) from each server through the server power module.