Performance optimisation of clustered java systems

Nowadays, clustered environments are commonly used in enterprise-levelapplications to achieve faster response time and higher throughput thansingle machine environments. However, this shift from a monolithic architecture to a distributed one has augmented the complexity of these applications, considerably complicating all activities related to the performance optimisation of such clustered systems. Therefore, automatic techniques are needed to facilitate these performance-related activities, which otherwise would be highly error-prone and time-consuming. This thesis contributes to the area of performance optimisation of clustered systems in Java (a predominant technology at enterprise-level), especially aiming for large-scale environments. This thesis proposes two techniques to solve the problems of efficiently identifying workload-dependent performance issues and efficiently avoiding the performance impacts of major garbage collection, two problems that a typical clustered Java system would likely suffer in large-scale environments. In particular, this thesis introduces an adaptive framework to automate the usage of performance diagnosis tools in the performance testing of clustered systems. The aim is to ease the identification of performance issues by decreasing the effort and expertise needed to effectively use such tools. Additionally, an adaptive GC-aware load balancing strategy is introduced, which leverages on major garbage collection forecasts to decide on the best way to balance the workload across the available nodes. The aim is to improve the performance of a clustered system by avoiding the impacts in the cluster's performance due to the major garbage collection occurring at the individual nodes. Experimental results of applying these techniques to a set of real-life applications are presented, showing the benefits that the techniques bring to a clustered Java system.%%%%Check date.issued and date.embargo: Flexible delayed release embargo added by author

[1]  Heung Seok Chae,et al.  An adaptive load balancing management technique for RFID middleware systems , 2010, Softw. Pract. Exp..

[2]  Gilbert Hamann,et al.  Automated performance analysis of load tests , 2009, 2009 IEEE International Conference on Software Maintenance.

[3]  Alfons Kemper,et al.  Dynamic Load Balancing in Data Grids by Global Load Estimation , 2012, 2012 11th International Symposium on Parallel and Distributed Computing.

[4]  Richard Mortier,et al.  Using Magpie for Request Extraction and Workload Modelling , 2004, OSDI.

[5]  Elvira Albert,et al.  Resource-Driven CLP-Based Test Case Generation , 2011, LOPSTR.

[6]  Javier Roca-Piera,et al.  Adaptive load balancing between static and dynamic layers in J2EE applications , 2011, 2011 7th International Conference on Next Generation Web Services Practices.

[7]  Zhen Ming Jiang,et al.  Automated analysis of load testing results , 2010, ISSTA '10.

[8]  Hoang Pham,et al.  Springer Handbook of Engineering Statistics , 2023, Springer Handbooks.

[9]  Dongmei Zhang,et al.  Context-sensitive delta inference for identifying workload-dependent performance bottlenecks , 2013, ISSTA.

[10]  Witawas Srisa-an,et al.  AS-GC: An Efficient Generational Garbage Collector for Java Application Servers , 2007, ECOOP.

[11]  Sudheendra Hangal,et al.  Tracking down software bugs using automatic anomaly detection , 2002, ICSE '02.

[12]  KyoungSoo Park,et al.  CoMon: a mostly-scalable monitoring system for PlanetLab , 2006, OPSR.

[13]  Vahid Garousi,et al.  Traffic-aware stress testing of distributed systems based on UML models , 2006, ICSE.

[14]  Erez Petrank,et al.  A parallel, incremental, mostly concurrent garbage collector for servers , 2005, TOPL.

[15]  Gregg Rothermel,et al.  SimRacer: an automated framework to support testing for process-level races , 2013, ISSTA.

[16]  A.,et al.  Principles and Practice of Automatic Process Control , 2007 .

[17]  Yichuan Jiang,et al.  A Survey of Task Allocation and Load Balancing in Distributed Systems , 2016, IEEE Transactions on Parallel and Distributed Systems.

[18]  Dhanaraj Cheelu,et al.  A comparative study of static and dynamic load balancing algorithms in cloud computing , 2017, 2017 International Conference on Energy, Communication, Data Analytics and Soft Computing (ICECDS).

[19]  Jeff Howells Software as a Service (SaaS) , 2015 .

[20]  Ladan Tahvildari,et al.  Self-adaptive software: Landscape and research challenges , 2009, TAAS.

[21]  Filip De Turck,et al.  SALSA: QoS-aware load balancing for autonomous service brokering , 2010, J. Syst. Softw..

[22]  Tomas Kalibera Replicating real-time garbage collector for Java , 2009, JTRES '09.

[23]  Anthony P. Reeves,et al.  Strategies for Dynamic Load Balancing on Highly Parallel Computers , 1993, IEEE Trans. Parallel Distributed Syst..

[24]  Stephen Taylor,et al.  Forecasting Economic Time Series , 1979 .

[25]  Binoy Ravindran,et al.  On scheduling garbage collector in dynamic real-time systems with statistical timing assurances , 2006, Ninth IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC'06).

[26]  Jin Zhou,et al.  Memory management for many-core processors with software configurable locality policies , 2012, ISMM '12.

[27]  John Zic,et al.  Yet Another Performance Testing Framework , 2008, 19th Australian Conference on Software Engineering (aswec 2008).

[28]  Hong Va Leong,et al.  Improving the scalability of the CORBA event service with a multi‐agent load balancing algorithm , 2002, Softw. Pract. Exp..

[29]  Wei Li,et al.  Model Based Load Testing of Web Applications , 2010, International Symposium on Parallel and Distributed Processing with Applications.

[30]  Steven C. Wheelwright,et al.  Forecasting: Methods and Applications, 3rd Edition , 1998 .

[31]  Manuvir Das,et al.  Perracotta: mining temporal API rules from imperfect traces , 2006, ICSE.

[32]  William Manning SCJP Sun Certified Programmer for Java 6 Exam 310-065 Certification Exam Preparation Course in a Book for Passing the SCJP Sun Certified Programmer for ... on Your First Try Certification Study Guide , 2009 .

[33]  David E. Culler,et al.  The ganglia distributed monitoring system: design, implementation, and experience , 2004, Parallel Comput..

[34]  Gavin Brown,et al.  The economics of garbage collection , 2010, ISMM '10.

[35]  Daniel Spoonhower,et al.  Eventrons: a safe programming construct for high-frequency hard real-time applications , 2006, PLDI '06.

[36]  Yannis Smaragdakis,et al.  DSD-Crasher: A hybrid analysis tool for bug finding , 2006, TSEM.

[37]  Yacine Atif System Software support for distributed real-time systems , 2000, J. Syst. Softw..

[38]  Panita Pongpaibool,et al.  NetHAM-nano: A Robust and Scalable Service-Oriented Platform for Distributed Monitoring , 2014, AINTEC.

[39]  Guoqing Xu,et al.  Dynamically validating static memory leak warnings , 2013, ISSTA.

[40]  Frank Hoffmann,et al.  To Collect or Not to Collect? Machine Learning for Memory Management , 2002, Java Virtual Machine Research and Technology Symposium.

[41]  Jong-Deok Choi,et al.  Finding and Removing Performance Bottlenecks in Large Systems , 2004, ECOOP.

[42]  Witawas Srisa-an,et al.  Fortune teller: improving garbage collection performance in server environment using live objects prediction , 2005, OOPSLA '05.

[43]  Dorina C. Petriu,et al.  The Future of Software Performance Engineering , 2007, Future of Software Engineering (FOSE '07).

[44]  John Murphy,et al.  Detecting Performance Antipatterns in Component Based Enterprise Systems , 2008, J. Object Technol..

[45]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[46]  Hanspeter Mössenböck,et al.  The taming of the shrew: increasing performance by automatic parameter tuning for java garbage collectors , 2014, ICPE.

[47]  Gavin Brown,et al.  Intelligent selection of application-specific garbage collectors , 2007, ISMM '07.

[48]  Tao Yu,et al.  A Self-Optimizing Workload Management Solution for Cloud Applications , 2013, 2013 IEEE 20th International Conference on Web Services.

[49]  Daniel L. Dvorak,et al.  Programming with non-heap memory in the real time specification for Java , 2003, OOPSLA '03.

[50]  Marcelo R. Campo,et al.  m‐JGRIM: a novel middleware for Gridifying Java applications into mobile Grid services , 2010, Softw. Pract. Exp..

[51]  Xiangyu Zhang,et al.  Practical isolation of failure-inducing changes for debugging regression faults , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[52]  Geoffrey Phipps Comparing Observed Bug and Productivity Rates for Java and C++ , 1999, Softw. Pract. Exp..

[53]  Petr Jan Horn,et al.  Autonomic Computing: IBM's Perspective on the State of Information Technology , 2001 .

[54]  Erik R. Altman,et al.  Performance analysis of idle programs , 2010, OOPSLA.

[55]  Samuel T. Chanson,et al.  Flexible and Extensible Load Balancing , 1997, Softw. Pract. Exp..

[56]  Danny Weyns,et al.  Do external feedback loops improve the design of self-adaptive systems? A controlled experiment , 2013, 2013 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[57]  Christian Bird,et al.  Collecting a heap of shapes , 2013, ISSTA.

[58]  Feng Mao,et al.  Influence of program inputs on the selection of garbage collectors , 2009, VEE '09.

[59]  Lucia Lo Bello,et al.  Factors affecting the design of load balancing algorithms in distributed systems , 1999, J. Syst. Softw..

[60]  Paul R. Wilson,et al.  Uniprocessor Garbage Collection Techniques , 1992, IWMM.

[61]  Eran Yahav,et al.  Correctness-preserving derivation of concurrent garbage collection algorithms , 2006, PLDI '06.

[62]  Robbert van Renesse,et al.  Astrolabe: A robust and scalable technology for distributed system monitoring, management, and data mining , 2003, TOCS.

[63]  Jacques M. Bahi,et al.  Synchronous distributed load balancing on dynamic networks , 2005, J. Parallel Distributed Comput..

[64]  Mary Shaw,et al.  Engineering Self-Adaptive Systems through Feedback Loops , 2009, Software Engineering for Self-Adaptive Systems.

[65]  Louise E. Moser,et al.  Resource management using multiple feedback loops in soft real-time distributed object systems , 2008, J. Syst. Softw..

[66]  Patricia J. Teller,et al.  Making Performance Analysis and Tuning Part of the Software Development Cycle , 2009, 2009 DoD High Performance Computing Modernization Program Users Group Conference.

[67]  Jong Kim,et al.  Dynamic load balancing for switch-based networks , 2003, J. Parallel Distributed Comput..

[68]  David A. Patterson,et al.  Path-Based Failure and Evolution Management , 2004, NSDI.

[69]  Shaozi Li,et al.  Research on self-adaptive load balancing in EJB clustering system , 2008, 2008 3rd International Conference on Intelligent System and Knowledge Engineering.

[70]  Puneet Agarwal,et al.  A testbed for performance evaluation of load‐balancing strategies for Web server systems , 2004, Softw. Pract. Exp..

[71]  Robert Laddaga,et al.  Introduction: The First International Workshop on Self-Adaptive Software , 2000, IWSAS.

[72]  M. Bozyigit History-driven dynamic load balancing for recurring applications on networks of workstations , 2000, J. Syst. Softw..

[73]  Yuval Tamir,et al.  CoRAL: A transparent fault-tolerant web service , 2009, J. Syst. Softw..

[74]  Jameela Al-Jaroodi,et al.  MidCloud: an agent‐based middleware for effective utilization of replicated Cloud services , 2015, Softw. Pract. Exp..

[75]  Chandra Krintz,et al.  Dynamic selection of application-specific garbage collectors , 2004, ISMM '04.

[76]  Marek Tudruj,et al.  Dynamic Load Balancing Based on Applications Global States Monitoring , 2013, 2013 IEEE 12th International Symposium on Parallel and Distributed Computing.

[77]  Franco Zambonelli,et al.  A taxonomy of architectural patterns for self-adaptive systems , 2013, C3S2E '13.

[78]  T. H. Tse,et al.  Contributions of tester experience and a checklist guideline to the identification of categories and choices for software testing , 2010, Software Quality Journal.

[79]  Jerome A. Rolia,et al.  Automating Enterprise Application Placement in Resource Utilities , 2003, DSOM.

[80]  Patrick O'Sullivan,et al.  GcLite: An Expert Tool for Analyzing Garbage Collection Behavior , 2012, 2012 IEEE 36th Annual Computer Software and Applications Conference Workshops.

[81]  Shing-Chi Cheung,et al.  Automated test case generation for the stress testing of multimedia systems , 2002, Softw. Pract. Exp..

[82]  Sergio Andreozzi,et al.  GridICE: a monitoring service for Grid systems , 2005, Future Gener. Comput. Syst..

[83]  Ron S. Kenett,et al.  Encyclopedia of statistics in quality and reliability , 2007 .

[84]  Wilhelm Hasselbring,et al.  Continuous Monitoring of Software Services: Design and Application of the Kieker Framework , 2009 .

[85]  João W. Cangussu,et al.  Automatic Stress and Load Testing for Embedded Systems , 2006, 30th Annual International Computer Software and Applications Conference (COMPSAC'06).

[86]  Ciprian Dobre,et al.  MONALISA: A MONITORING FRAMEWORK FOR LARGE SCALE COMPUTING SYSTEMS , 2014 .

[87]  Lionel C. Briand,et al.  Using genetic algorithms for early schedulability analysis and stress testing in real-time systems , 2006, Genetic Programming and Evolvable Machines.

[88]  Tien Van Do,et al.  Comparison of scheduling schemes for on-demand IaaS requests , 2012, J. Syst. Softw..

[89]  Lieven Eeckhout,et al.  Garbage Collection Hints , 2005, HiPEAC.

[90]  Johnny S. K. Wong,et al.  A task migration algorithm for heterogeneous distributed computing systems , 1998, J. Syst. Softw..

[91]  Ahmed E. Hassan,et al.  Pinpointing the Subsystems Responsible for the Performance Deviations in a Load Test , 2010, 2010 IEEE 21st International Symposium on Software Reliability Engineering.

[92]  John C. Cherniavsky,et al.  Validation, Verification, and Testing of Computer Software , 1982, CSUR.

[93]  Witawas Srisa-an,et al.  Garbage collection: Java application servers' Achilles heel , 2008, Sci. Comput. Program..

[94]  A. Omar Portillo-Dominguez,et al.  Load Balancing of Java Applications by Forecasting Garbage Collections , 2014, 2014 IEEE 13th International Symposium on Parallel and Distributed Computing.

[95]  Chandra Krintz,et al.  Dynamic prediction of collection yield for managed runtimes , 2009, ASPLOS.

[96]  Perry Cheng,et al.  Myths and realities: the performance impact of garbage collection , 2004, SIGMETRICS '04/Performance '04.

[97]  William E. Yancey Evaluating String Comparator Performance for Record Linkage , 2005 .