# v-Mapper: An Application-Aware Resource Consolidation Scheme for Cloud Data Centers +
## Data Center Design and the v-Mapper System Model
### VM Placement and the Data Center Model
Usually, scheduling policies are governed by optimizing a generalized proportional fairness objective. Therefore, compared to other scheduling techniques, our approach enforces a more stringent fairness and load balance among workloads. Specifically, it assigns tags to each request when they arrive, and then dispatches requests in a non-descending order of tags. v-Mapper also delivers a statistically fair service even when the service rate fluctuates due to varying link capacity or varying CPU processing rates, etc. To demonstrate our load-sharing approach, let Ra be a scheduling request that carries a workload capacity Wa. This request is shared among r resources of a cloud's total available shared resources SR. The shared fair load SFL of an admission-control request Ra for each shared cloud resource SR is then defined as:

\[\mathrm{W_{a}^{SFL}}=\mathrm{W_{a}}/\mathrm{r} \tag{9}\]

The shared fair load SFL of the shared resource SR for the scheduling request query Qreq can be defined as:

\[\mathrm{S_{R}^{SFL}}=\sum\mathrm{R_{a}}\in\mathrm{Q_{req}}\mathrm{W_{a}^{SL}} \tag{10}\]

The scheduler prioritizes and accepts resource-intensive applications requiring maximum load-share capacity because their processing requirements fit in most with the system capacity. We then assign a priority Prq to the individual resource demand (per requesting application), whereby we consider the priority as a workload admission control request: shared fair load ratio. For the described scenario, the workload admission control request's shared fair load ratio can be expressed as:

\[\mathrm{Q_{R}}/\mathrm{S_{R}^{STL}} \tag{11}\]

We next define a priority function (line 1 in Algorithm 3) to ensure that the service requests (i) are treated fairly in the queue (memory buffer). We apply conditionality (line 2) for execution, where a request query can only be entertained once all the resources required for its execution are available. This also guarantees that the total resource requirements of the requesting application cannot exceed the system threshold capacity (Rt) (see line 2). We then provide individual applications with their respective priority value (Pqi) (line 3). This priority value is calculated by the priority function (Equation (11)). In the next step, we queue all these buffered requests (br) in descending order (lines 7-13). This is done to ensure that the requests with the smallest resource requests but higher priority value are entertained first. Finally, the sorted resource-demanding applications are forwarded for process execution (lines 15-16). v-Mapper's VM scheduling policy is presented in Algorithm 3. Figure 4: v-Mapper-Scheduling scenarios. ```
1:qi: represent a new request i; Rqi: the (required) resources for a service request i; Rt: system threshold for the resource, Pqi: priority of request i; N: request number in a memory buffer br. 2:scheduling decision
3: Let priority = \(\frac{\mathrm{Q}_{\mathrm{i}}}{\mathrm{S}_{\mathrm{R}}^{\mathrm{i}}}\)
4:whileRqi \(\leq\) Rt do
5: Assign request q\({}_{\mathrm{i}}\) its calculated priority value
6: Push q\({}_{\mathrm{i}}\) to br
7:endwhile
8: /* Sort buffer requests by priority in descending order */
9:for I \(\gets\) 0 to N do
10:for j \(\leftarrow\) 0 to N-2-i do
11:ifPq\({}_{\mathrm{j}}\) < Pq\({}_{\mathrm{(i+1)}}\)do
12:Pq\({}_{\mathrm{j}}\) \(\leftrightarrow\) Pq\({}_{\mathrm{(i+1)}}\)
13:endif
14:endfor
15:endfor
16: /* Process all sorted VM requests */
17:for i \(\leftarrow\) 0 to N do
18: Process(q\({}_{\mathrm{j}}\))
19:endfor
20:exit
```

**Algorithm 3** VM scheduling policy

## 5 Performance Test Bed and Simulation Environment

Below, we present a detailed study on the simulation settings of our system. The datacenter architectures used in the simulation were Fat-Tree and B-Cube, while the resource distributions used in the experiments were drawn from an empirical distribution given in [30]. The study report here covers our designed baseline strategies, the simulation environment and the results (Section 6).