The main objective is this report was to improve the load-‐balancing algorithm [1] as it used to suffer from performance issues because servers used to get overloaded as it had to maintain the objects in memory in order to determine which the best available server for the client. In this report, concepts of server-‐ weights [4] was added to algorithm [1] so that it can perform better in terms of scalability, tps, response time etc. By adding this concept of static server-‐weights [4], the objective of the project i.e. find the most effective load-‐balancing algorithm, based on
performance, measured in terms of higher TPS and low response time, for the industry as well as more scalable was evaluated.
After analyzing the performance results, its seen that Dynamic Load Balancer with Least Connections and Fastest Response Time with Weight table (proposed
Algorithm) [1, 4] perform better than the Dynamic Load Balancer with Least Connections and Fastest Response Time (original algorithm) [1]. The better the performance, more is the transaction being processed in the same time. Load
Balancing means routing the requests sent by the client, and getting response in fast manner. The proposed algorithm not only processes more transactions, it also reduces or does not change the average time (round trip time). Not only the proposed algorithm has a better tps, it has better scalability too as seen from the performance results. Performance results also confirmed that 99%tile of all the responses received, the new algorithm performs better.
6.1
.Current Status
The main objective of this report was to determine which load balancing algorithm should be used which can provide better scalability, higher tps, and better response time. I tried to improve the load balancing technique [1] by adding the concept of weighted servers [4]. Both Load Balancing Techniques were implemented as web service, and comparison of their performance was done. The web service will act as global traffic manager (GTM), which will be called by the client, and algorithm will act as local traffic manager (LTM) routing the requests to the appropriate cloud servers to get the result back to client in minimum time. Algorithms were evaluated based on the performance tests executed on them. Performance tests like simple strategy, thread strategy, variance strategy, and hp load runner tests were executed against load balancing web service for tps, avg response time, maximum time, and 99%tile response time. All the tools that were used for performing performance tests were open source, and free. HP Load runner tool was based on free trial. Based on the analysis of performance results, it was seen that proposed algorithm
(Dynamic Load Balancer with Least Connections and Fastest Response Time with Weight table) has performed better than the original algorithm (Dynamic Load Balancer with Least Connections and Fastest Response Time) for criteria of 99%tile response time, tps, max time etc. It has better tps, higher scalability, and response time improves too.
6.2 Future Work
The future work for this master’s project can be extended to various areas. Some of the few areas are:
• The proposed load balancing technique uses the concept of static weights. It can be extended to dynamic weights where weights are assigned to the server dynamically based on the server performance. The server, which is performing, better is assigned higher weight as compared to less performing server. This can be achieved by adding monitoring agents on the each server, which monitors the performance.
• Concept of threads can be used too. Threads will be used in load balancing algorithms where requests sent by client are added in a service pool queue, and thread fetches requests from it, performs the requested operation. It follows the lifecycle of thread. It should be made sure that all the threads are mutually exclusive of each other so that the balancing algorithm does not go in deadlock state.
• JMS can be used to. Instead of using web service for the load-‐balancing algorithm, they can be deployed as standalone applications on the
servers/instances, which have the concept of JMS, coded in it. JMS is termed as “Java Messaging Service”. The framework will use JMS as mechanism for the clients to send the messages. Load balancing techniques can be
compared against web service v/s JMS.
6.3 Lessons Learned
Many things were learnt during implementation of the master’s project. Algorithms were developed using JAX-‐WS, and use SOAP tool for load testing was beneficial.
Web service was created from top to bottom approach. I learnt how to write script in order to use HP Load runner tool to call the web service.
BIBLIOGRAPHY
[1] Azzedine Boukerche, Robson Eduardo De Grande, “Dynamic Load Balancing Using Grid Services for HLA-‐Based Simulations on Large-‐Scale Distributed Systems,”
Proceedings of the 2009 13th IEEE/ACM International Symposium on Distributed Simulation and Real Time Applications, 2009.
[2] Patrick Wendell, Joe Wenjie Jiang, Micheal J. Freedman, and Jennifer Rexford.
DONAR : Decentralized Server Selection for Cloud Services. In Proceedings of the ACM SIGCOMM 2010 conference on SIGCOMM’10. ACM, New Yrk, NY, USA, 231-‐242
[3] Gowtham Kanagaraj, Naveen Shanmugasundaram And Sathish Prakash
“Adaptive Load Balancing Algorithm Using Service Queue” 2nd International Conference on Computer Science and Information Technology (ICCSIT'2012) Singapore April 28-‐29, 2012
[4] Xiao Qin, Hong Jiang, Yifeng Zhu, David R. Swanson, “Boosting Performance for I/OIntensive Workload by Preemptive Job Migrations in a Cluster System,”
Proceedings of the 15th Symposium on Computer Architecture and High Performance Computing, 2003.
[5] Aameek Singh, Madhukar Korupolu, Dushmanta Mohapatra, “ServerStorage Virtualization: Integration and Load Balancing in Web server,” Proceedings of the 2008 ACM/IEEE conference on Supercomputing, 2008.
[6] Hyotaek Lim “Dynamic Load Balancing and Network Monitoring in iATA Protocol for Mobile Appliances”, Multimedia and Ubiquitous Engineering (MUE), 2010 4th International Conference on 11-‐13 Aug. 2010
[7] Cardellini, V. “Dynamic load balancing on Web-‐server systems” , Internet Computing, IEEE
[8] M.Pathan, C. Vecchiola and R.Buyya, “Load and proximity aware request-‐
redirection for dynamic load distribution in peering CDNs”, in OTM, Nov 2008.
[9] Klaithem Al Nuaimi, Nader Mohamed, Mariam Al Nuaimi and Jameela Al-‐Jaroodi
“A Survey of Load Balancing in Cloud Computing: Challenges and Algorithm”
2012 Second Symposium on Network Cloud Computing and Applications
[10] A. Iosup, S. Ostermann, M. Yigitbasi, R. Prodan, T. Fahringer, and D. Epema.
“Performance analysis of cloud computing services for many-‐tasks scientific computing. In Parallel and Distributed Systems”, IEEE Transactions on, 2011.
http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=5719609.
[11] Allan, D. Farkas, J.; Mansfield, S. “Intelligent load balancing for shortest path
bridging” , 2012
[12] M. Armbrust, A. Fox, R. Griffith, A. D. Joseph, R. Katz, A. Konwinski, G. Lee, D.
A.Patterson, A. Rabkin, I. Stoica, and M. Zaharia. Above the clouds: A berkeley viewof cloud computing. In EECS Department, University of California, Berkeley, 2009. http:
//www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-‐2009-‐28.html.
[13] T. Harris. Cloud computing services a comparison. In ., 2010. http://www.thbs.
com/pdfs/Comparison%20of%20Cloud%20computing%20services.pdf.
[14]-‐ http://www.eweek.com/c/a/Cloud-‐Computing/Amazon-‐Web-‐Services-‐
Delivers-‐High-‐Performance-‐Computing-‐Solution-‐757277/
[15] How to create Amazon EC2 Instance : http://twiki.org/cgi-‐
bin/view/Blog/BlogEntry201105x2
[16]Building Web services with JAX-‐WS
http://docs.oracle.com/javaee/5/tutorial/doc/bnayl.html
[17] SOAP UI Tool: www.w3.org/TR/soap/
[18] Execute Load Test: http://www.soapui.org/Load-‐Testing/loadtest-‐
execution.html
[19] M.Pathan, C. Vecchiola and R.Buyya, “Load and proximity aware request-‐
redirection for dynamic load distribution in peering CDNs”, in OTM, Nov 2008.
[20] Amazon Web Service Deliver High Performance:
http://www.eweek.com/c/a/Cloud-‐Computing/Amazon-‐Web-‐Services-‐Delivers-‐
High-‐Performance-‐Computing-‐Solution-‐757277/
[21] HP Load Runner Tool: http://www8.hp.com/us/en/software-‐
solutions/software.html?compURI=1175451&action=downloadsoftware&jumpid=p s_r11374_us/en/large/eb/loadrnr_GoogleSEMdg&tcmid=tcm:245-‐
865742&originid=8-‐
2LDREMR§ionid=alm_ito&k_clickid=AMS|125|59697|4cb21060-‐4918-‐b928-‐
f3d6-‐000033d159d7#!
[22] Intro to Load Balancing for Developers:
https://devcentral.f5.com/articles/intro-‐to-‐load-‐balancing-‐for-‐developers-‐ndash-‐
the-‐algorithms#.Un0JshB29No
[23] New To SOA and Web Services:
http://www.ibm.com/developerworks/webservices/newto/service.html
[24] Amazon Web Services: http://aws.amazon.com/