The mechanics of memory-related software aging

Software aging is a phenomenon defined as the continuing degradation of software systems during runtime, being particularly noticeable in long-running applications. Memory-related aging effects are one of the most important problems in this research field. Therefore understanding their causes and how they work is a major requirement in designing dependable software systems. In this paper we go deep into how memory management works inside application process, focusing on two memory problems that cause software aging: fragmenting and leakage. We explain the mechanics of memory-related software aging effects dissecting a real and widely adopted memory allocator. Along with the theoretical explanation, we present an experimental study that illustrates how memory fragmenting and leakage occur and how they accumulate over time in order to cause system aging-related failures.

[1]  Uresh K. Vahalia UNIX Internals: The New Frontiers , 1995 .

[2]  Bojan Cukic,et al.  Software aging and multifractality of memory resources , 2003, 2003 International Conference on Dependable Systems and Networks, 2003. Proceedings..

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

[4]  Yennun Huang,et al.  Software rejuvenation: analysis, module and applications , 1995, Twenty-Fifth International Symposium on Fault-Tolerant Computing. Digest of Papers.

[5]  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).

[6]  Ismael Ripoll,et al.  A comparison of memory allocators for real-time applications , 2006, JTRES '06.

[7]  Charles P. Wright,et al.  Improving Application Performance Through System Call Composition , 2022 .

[8]  Kathryn S. McKinley,et al.  Hoard: a scalable memory allocator for multithreaded applications , 2000, SIGP.

[9]  Paul R. Wilson,et al.  The memory fragmentation problem: solved? , 1998, ISMM '98.

[10]  Jason Evans April A Scalable Concurrent malloc(3) Implementation for FreeBSD , 2006 .

[11]  Kishor S. Trivedi,et al.  Accelerated Degradation Tests Applied to Software Aging Experiments , 2010, IEEE Transactions on Reliability.

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

[13]  Kishor S. Trivedi,et al.  The fundamentals of software aging , 2008, 2008 IEEE International Conference on Software Reliability Engineering Workshops (ISSRE Wksp).