Article Preview
TopIntroduction
In cloud environment, many applications are aggregated to share resources. Meanwhile, sharing leads to potential resource contentions, such as CPU contention (Li et al., 2012; Rao, Wei, Gong, & Xu, 2013), I/O contention (Rao et al. 2013), and network contention (Bourguiba, Haddadou, El Korbi, & Pujolle, 2014; Singh, Shenoy, Natu, Sadaphal, & Vin, 2011). Owing to the best-effort provisioning manner of cloud networks, the network contention may cause significant unfair sharing of network resources among applications. In fact, some prior studies have made efforts to guarantee the fairness of network bandwidth (Guo, Liu, Zeng, Lui, & Jin, 2013; Popa et al., 2012; Wei, Vasilakos, Zheng, & Xiong, 2010), providing bandwidth fairly to applications. However, it is not sufficient to share networks fairly by considering the bandwidth only.
Many interactive applications in clouds concern not only the bandwidth, but also the response time, which would be experienced directly by end-users. The owners of such applications expect fair response time, rather than the bandwidth. In fact, they may consider it unfair when their applications express bad response time, even if the applications are guaranteed with fair bandwidth. Thus, we should guarantee the fair response time as well. Naturally, we investigate whether the traditional methods (Guo et al., 2013; Popa et al. 2012; Shieh, Kandula, Greenberg, Kim, & Saha, 2011) can share the network fairly for multitier applications, considering not only the bandwidth but also the response time.
First, can the methods for sharing bandwidth help the response time? Unfortunately, these works do not help the fairness of response time much. Intuitively, they consider an application with more bandwidth obtaining better performance. As shown in Figure 1, assuming application A pays 4 times as much as B, A gets 8Mbps bandwidth of the link and B gets 2Mbps. However, according to the queuing theory, packets of A going through this link would cost the same time as packets of B, even though A gets more bandwidth (under FIFO scheduling policy). In fact, the response time is mainly affected by the forwarding ability, an inherent attribute of switches that is unchangeable, and the link load, the aggregated load transferring over that link. Although the link load can be changed by adjusting bandwidth, and the change may potentially affect response time, we will show that such effect is non-significant or even unwanted.
Figure 1. Two sample transactions sharing a switch link
Second, can the methods toward components help multitier applications? Unfortunately, the traditional methods that focus on the fairness toward components cannot help multitier applications either. In practice, on one hand multitier applications contain multiple transactions, and on the other hand, the cloud contains many multitier applications. This causes a lot of transactions with different degrees of importance mixed together. Only considering the components ignores the requirements of transactions, and causes unfair performance for applications.
In this paper, we focus on the fairness of network sharing for multitier applications. We first analyze potential problems if considering requirements of response time and transactions. Then we construct a model to describe the fairness of network sharing, considering both response time and throughput. Two metrics in this model evaluate the fairness status of the cloud, indicating the fairness degree and the average performance, respectively. Based on the model, we propose a scheduling mechanism to improve the fairness status and reduce the performance degradation. The evaluation results show that, our method can improve fairness by 26.5%–52.8%, compared to some practical mechanisms, and avoid performance degradation or even improve performance.
In summary, we make the following contributions in this paper: