# JSSTR: A Joint Server Selection and Traffic Routing Algorithm for the Software-Defined Data Center
## 6 Evaluation  
### Evaluation Metrics  
Several metrics, (1) routing path hop degree, (2) network load, (3) network load balancing degree, (4) server load, (5) server load balancing degree and (6) calculation time, are introduced to evaluate the proposed algorithm and compared algorithms. Detailed descriptions of these metrics are shown below.  
(1) Routing path hop degree: The routing path hop degree is utilized to evaluate the performance of the routing path calculation of the proposed JSTR algorithm. The routing path hop degree is calculated by:  
\[routing\_path\_hop\_degree=\frac{1}{K}\sum_{i=1}^{K}p_{i} \tag{6}\]  
Here, \(p_{i}\) represents the hop count of the \(i\)-th routing path, while \(K\) is the number of all calculated routing paths. Obviously, if the routing path is shorter, the routing path hop degree will be less and the workload on the underlying network will also be smaller. Therefore, for a routing algorithm, the performance of routing path calculation becomes better as the routing path hop degree decreases.  
(2) Network load: The network load is often used to evaluate the efficiency of a routing algorithm. Subsequently, in this work, the network load is considered as one important performance index. It is defined as:  
\[network\_load=\frac{1}{M}\sum_{i=1}^{M}l_{i} \tag{7}\]Here, \(M\) is the number of all links in the network. \(l_{i}\) is the link utilization of the \(i\)-th link, which is the ratio between the used bandwidth and the total bandwidth of the \(i\)-th link. Based on the definition of network load, it can be seen that lower network load indicates higher efficiency of the routing algorithm.  
(3) Network load balancing degree: In order to evaluate the performance of network load balancing, the network load balancing degree is employed as one performance index in the evaluation. The network load balancing degree is defined as:  
\[network\_load\_balancing\_degree=\sqrt{\frac{1}{M}\sum_{i=1}^{M}{(l_{i}-network\_load)^{2}}} \tag{8}\]  
Obviously, lower network load balancing degree means better performance of network load balancing.  
(4) Server load: Similar to the network load, the server load is also considered as an important performance index in this work. The server load is defined as:  
\[server\_load=\frac{1}{N}\sum_{i=1}^{N}{s_{i}} \tag{9}\]  
Here, \(s_{i}\) is the ratio between the used resource and the total resource of the \(i\)-th server. \(N\) is the number of all servers. Obviously, lower server load represents higher server efficiency.  
(5) Server load balancing degree: The server load balancing degree is utilized to evaluate the server load balancing performance of the proposed algorithm. In the evaluation, it is calculated by:  
\[server\_load\_balancing\_degree=\sqrt{\frac{1}{N}\sum_{i=1}^{N}{(s_{i}-server\_ load)^{2}}} \tag{10}\]  
Similar to the network load balancing degree, lower server load balancing degree represents better load balancing between servers.  
(6) Calculation time: The calculation time used to evaluate the proposed algorithm and compared algorithms is measured on the controller. It is the time from receiving a user request to finishing handling that user request. Obviously, for an algorithm, less calculation time means less computational complexity.