Software Aging and Rejuvenation in a J2EE Application Server

Recently, software aging and software rejuvenation have been widely researched by both academic and industrial communities. Software aging is characterized by progressive performance degradation or a sudden hang/crash in a long-running software system due to resource exhaustion of the operating system. Software rejuvenation is a proactive and preventive maintenance technique to counteract software aging. In this work, the memory leak in Java virtual machine (JVM) is firstly analyzed, and then the software aging phenomenon in a J2EE application server is investigated. To mitigate software aging effects and prevent the system from failing, the hierarchical software rejuvenation method by partial or total restarting of the system is presented. Finally, the experimental results proved that the proposed method is superior to the periodical rejuvenation method in the aspect of improving system performance. Copyright © 2014 John Wiley & Sons, Ltd.

[1]  Wei Xie,et al.  Analysis of a two-level software rejuvenation policy , 2005, Reliab. Eng. Syst. Saf..

[2]  Chandra M. R. Kintala Software Rejuvenation in Embedded Systems , 2009, J. Autom. Lang. Comb..

[3]  Rivalino Matias,et al.  An Experimental Study on Software Aging and Rejuvenation in Web Servers , 2006, 30th Annual International Computer Software and Applications Conference (COMPSAC'06).

[4]  Kenny C. Gross,et al.  Advanced pattern recognition for detection of complex software aging phenomena in online transaction processing servers , 2002, Proceedings International Conference on Dependable Systems and Networks.

[5]  Jim Gray,et al.  Why Do Computers Stop and What Can Be Done About It? , 1986, Symposium on Reliability in Distributed Software and Database Systems.

[6]  Kishor S. Trivedi,et al.  Analysis of Software Aging in a Web Server , 2006, IEEE Transactions on Reliability.

[7]  Sen Ma,et al.  Memory Leak Detection in Sun Solaris OS , 2008, 2008 International Symposium on Computer Science and Computational Technology.

[8]  Jordi Torres Viñals,et al.  J2EE instrumentation for software aging root cause application component determination with AspectJ , 2010 .

[9]  Agapios N. Platis,et al.  Modeling Perfect and Minimal Rejuvenation for Client Server Systems with Heterogeneous Load , 2008, 2008 14th IEEE Pacific Rim International Symposium on Dependable Computing.

[10]  Paulo Romero Martins Maciel,et al.  Experimental evaluation of software aging effects in the eucalyptus elastic block storage , 2012, 2012 IEEE International Conference on Systems, Man, and Cybernetics (SMC).

[11]  Kai-Yuan Cai,et al.  Multi-granularity Software Rejuvenation Policy Based on Continuous Time Markov Chain , 2011, 2011 IEEE Third International Workshop on Software Aging and Rejuvenation.

[12]  Elaine J. Weyuker,et al.  Monitoring Smoothly Degrading Systems for Increased Dependability , 2004, Empirical Software Engineering.

[13]  E Marshall,et al.  Fatal error: how patriot overlooked a scud. , 1992, Science.

[14]  Paulo Romero Martins Maciel,et al.  Measuring software aging effects through OS kernel instrumentation , 2010, 2010 IEEE Second International Workshop on Software Aging and Rejuvenation.

[15]  Domenico Cotroneo,et al.  Characterizing Aging Phenomena of the Java Virtual Machine , 2007, 2007 26th IEEE International Symposium on Reliable Distributed Systems (SRDS 2007).

[16]  Kishor S. Trivedi,et al.  Performance Assurance via Software Rejuvenation: Monitoring, Statistics and Algorithms , 2006, International Conference on Dependable Systems and Networks (DSN'06).

[17]  Kishor S. Trivedi,et al.  Proactive management of software aging , 2001, IBM J. Res. Dev..

[18]  Paulo Romero Martins Maciel,et al.  Software aging issues on the eucalyptus cloud computing infrastructure , 2011, 2011 IEEE International Conference on Systems, Man, and Cybernetics.

[19]  Kishor S. Trivedi,et al.  A comparative experimental study of software rejuvenation overhead , 2013, Perform. Evaluation.