*********************************
There is now a CONTENT FREEZE for Mercury while we switch to a new platform. It began on Friday, March 10 at 6pm and will end on Wednesday, March 15 at noon. No new content can be created during this time, but all material in the system as of the beginning of the freeze will be migrated to the new platform, including users and groups. Functionally the new site is identical to the old one. webteam@gatech.edu
*********************************
Title: Mitigating the performance impact of memory bloat
Sangho Lee
School of Computer Science
College of Computing
Georgia Institute of Technology
Date: November 11th, 2014 (Thursday)
Time: 1:00 PM - 3:00 PM (ET)
Location: KACB 2100
Committee:
------------
Dr. Santosh Pande (Advisor, School of Computer Science, Georgia Tech)
Dr. Alessandro Orso (School of Computer Science, Georgia Tech)
Dr. Karsten Schwan (School of Computer Science, Georgia Tech)
Dr. Hyesoon Kim (School of Computer Science, Georgia Tech)
Abstract:
Memory bloat is loosely defined as an excessive use of memory than is
necessary in an application. Due to the complexity of efficient memory
management, memory bloat is pervasive and is often neglected in favor of
lower application development time. Unfortunately, when the bloat
becomes severe, unwanted performance issues may occur.
In this proposal, we identify 3 pervasive causes of performance issues
due to memory bloat and present feedback-driven solutions for each.
First, memory bloat often manifests in the form of memory leaks. To
prevent the consequences of memory bloats, we first need to detect the
presence of memory leaks. We tackle this issue by augmenting a class of
dynamic memory leak detectors based on staleness tracking using a
machine learning framework. The proposed solution improves the accuracy
and utility of the detection technique by selecting good staleness
predicates for detecting memory leaks. Significant memory bloat savings
are incurred upon weeding out such memory leaks.
Second, memory bloat prevention mechanism in multi-threaded memory
allocators is another source of performance issues. When the bloat
prevention mechanism is frequently triggered unnecessarily as an
artifact of intensive memory allocations/deallocations, an application
may experience a suboptimal performance. To address this, we propose a
feedback-directed tuning mechanism for TCMalloc, a widely used memory
allocator for high performance systems. The proposed optimization
technique tunes the thread cache management mechanism in TCMalloc to the
memory allocation behavior of an application and reduces the management
cost of the internal data structures in TCMalloc. With the proposed
technique integrated into FDO in GCC, we observed up to 10% improvement in application performance.
Third, implicit memory management in managed languages such as Java is
inherently vulnerable to memory bloat as the detection and reclamation
of dead objects are performed lazily by garbage collectors. The
interruptions caused by frequent garbage collections can adversely
impact performance as well as timing properties of the applications. To
prevent the program slowdown due to excessive garbage collection
pressure, we propose a hybrid approach that identifies must-deallocation
sites of allocated objects using a static shape analysis and that
transforms an application to selectively recycle the dead objects using
a profile driven approach. With the technique, we observed a 4x
performance improvement on an application with a high garbage collection
pressure. Further improvements to object recycling framework and its
evaluation on timing properties are proposed as future work.