Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1993478.1993487acmconferencesArticle/Chapter ViewAbstractPublication PagesismmConference Proceedingsconference-collections
research-article

Waste not, want not: resource-based garbage collection in a shared environment

Published: 04 June 2011 Publication History

Abstract

To achieve optimal performance, garbage-collected applications must balance the sizes of their heaps dynamically. Sizing the heap too small can reduce throughput by increasing the number of garbage collections that must be performed. Too large a heap, however, can cause the system to page and drag down the overall throughput. In today's multicore, multiprocessor machines, multiple garbage-collected applications may run simultaneously. As a result, each virtual machine (VM) must adjust its memory demands to reflect not only the behavior of the application it is running, but also the behavior of the peer applications running on the system.
We present a memory management system that enables VMs to react to memory demands dynamically. Our approach allows the applications' heaps to remain small enough to avoid the negative impacts of paging, while still taking advantage of any memory that is available within the system. This memory manager, which we call Poor Richard's Memory Manager, focuses on optimizing overall system performance by allowing applications to share data and make system-wide decisions. We describe the design of our memory management system, show how it can be added to existing VMs with little effort, and document that it has almost no impact on performance when memory is plentiful. Using both homogenous and heterogenous Java workloads, we then show that Poor Richard's memory manager improves average performance by up to a factor 5.5 when the system is paging. We further show that this result is not specific to any garbage collection algorithm, but that this improvement is observed for every garbage collector on which we test it. We finally demonstrate the versatility of our memory manager by using it to improve the performance of a conservative whole-heap garbage collector used in executing .Net applications.

References

[1]
Bug ID: 4694058 Allow JRE to return unused memory to the system heap. Available at http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4694058.
[2]
Garbage collector ergonomics. Available at http://download.oracle.com/javase/6/docs/technotes/guides/vm/gc-ergonomics.html.
[3]
getrusage(3c) - solaris man page. Available at http://download.oracle.com/docs/cd/E19963-01/821-1465/getrusage-3c/index.html.
[4]
proc(5) - process info pseudo-filesystem - Linux man page. Available at http://linux.die.net/man/5/proc.
[5]
Tuning the memory management system. Available at http://download.oracle.com/docs/cd/E15289_01/doc.40/e15060/memman.htm#i1092162.
[6]
R. Alonso and A. W. Appel. An advisor for flexible working sets. In Proceedings of the 1990 Joint International Conference on Measurement and Modeling of Computer Systems, pages 153--162, Boulder, CO, May 1990.
[7]
E. Andreasson, F. Hoffmann, and O. Lindholm. To collect or not to collect? Machine learning for memory management. In JVM '02: Proceedings of the Java Virtual Machine Research and Technology Symposium, pages 27--39, August 2002.
[8]
A. W. Appel. Simple generational garbage collection and fast allocation. Software: Practice and Experience, 19(2):171--183, 1989.
[9]
D. F. Bacon, P. Cheng, and V. T. Rajan. A real-time garbage collecor with low overhead and consistent utilization. In Thirtieth Annual ACM Symposium on Principles of Programming Languages, volume 38(1), pages 285--298, New Orleans, LA, Jan. 2003.
[10]
H. D. Baecker. Garbage collection for virtual memory computer systems. Communications of the ACM, 15(11):981--986, Nov. 1972.
[11]
H. G. Baker. List processing in real-time on a serial computer. Communications of the ACM, 21(4):280--294, 1978.
[12]
P. B. Bishop. Computer Systems with a Very Large Address Space and Garbage Collection. PhD thesis, MIT Laboratory for Computer Science, Cambridge, MA, May 1977.
[13]
S. M. Blackburn, P. Cheng, and K. S. McKinley. Myths and reality: The performance impact of garbage collection. In Proceedings of the 2004 Joint International Conference on Measurement and Modeling of Computer Systems, volume 32(1), pages 25--36, June 2004.
[14]
S. M. Blackburn, P. Cheng, and K. S. McKinley. Oil and water? high performance garbage collection in Java with MMTk. In Proceedings of the 26th International Conference on Software Engineering, pages 137--146, Edinburgh, Scotland, May 2004.
[15]
S. M. Blackburn, R. Garner, C. Hoffmann, A. M. Khang, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, B. Moss, A. Phansalkar, D. Stefanović, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The DaCapo benchmarks: Java benchmarking development and analysis. In Proceedings of ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, volume 41(10), pages 169--190, Oct. 2006.
[16]
S. M. Blackburn and K. S. McKinley. Immix: a mark-region garbage collector with space efficiency, fast collection, and mutator performance. In Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation, volume 43(6), pages 22--32, Tucson, AZ, 2008.
[17]
D. G. Bobrow and D. L. Murphy. Structure of a LISP system using two-level storage. Communications of the ACM, 10(3):155--159, Mar. 1967.
[18]
D. G. Bobrow and D. L. Murphy. A note on the efficiency of a LISP computation in a paged machine. Communications of the ACM, 11(8):558--560, Aug. 1968.
[19]
H.-J. Boehm and M. Weiser. Garbage collection in an uncooperative environment. Software: Practice and Experience, 18(9):807--820, Sept. 1988.
[20]
D. Buytaert, K. Venstermans, L. Eeckhout, and K. D. Bosschere. GCH: Hints for triggering garbage collections. In Transactions on High-Performance Embedded Architectures and Compilers I, pages 74--94. 2007.
[21]
F. Chen, S. Jiang, and X. Zhang. CLOCK-Pro: an effective improvement of the CLOCK replacement. In Proceedings of USENIX Annual Technical Conference, 2005.
[22]
C. J. Cheney. A non-recursive list compacting algorithm. Communications of the ACM, 13(11):677--678, Nov. 1970.
[23]
C. Ding, C. Zhang, X. Shen, and M. Ogihara. Gated memory control for memory monitoring, leak detection and garbage collection. In Proceedings of the ACM SIGPLAN Workshop on Memory System Performance, pages 62--67, Chicago, IL, June 2005.
[24]
L. Eeckhout, A. Georges, and K. D. Bosschere. How Java programs interact with virtual machines at the microarchitectural level. In Proceedings of the 18th ACM Conference on Object-Oriented Programming, Systems, Languages, & Applications, volume 38(11), pages 169--186, Anaheim, CA, Oct. 2003.
[25]
R. R. Fenichel and J. C. Yochelson. A Lisp garbage collector for virtual memory computer systems. Communications of the ACM, 12(11):611--612, Nov. 1969.
[26]
C. Grzegorczyk, S. Soman, C. Krintz, and R. Wolski. Isla vista heap sizing: Using feedback to avoid paging. In Proceedings of the International Symposium on Code Generation and Optimization, pages 325--340, 2007.
[27]
M. Hertz, Y. Feng, and E. D. Berger. Garbage collection without paging. In Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2005), volume 40(7), pages 143--153, Chicago, IL, June 2005.
[28]
M. Hertz, Y. Feng, and E. D. Berger. Garbage collection without paging. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 143--153, Chicago, IL, June 2005.
[29]
X. Huang, S. M. Blackburn, K. S. McKinley, J. E. B. Moss, Z. Wang, and P. Cheng. The garbage collection advantage: Improving program locality. In Proceedings of the 19th ACM Conference on Object-Oriented Programming, Systems, Languages, & Applications, volume 39(11), pages 69--80, Vancouver, BC, Canada, Oct. 2004.
[30]
S. Jiang and X. Zhang. TPF: a dynamic system thrashing protection facility. Software Practice and Experience, 32(3), 2002.
[31]
H. Lieberman and C. E. Hewitt. A real-time garbage collector based on the lifetimes of objects. Communications of the ACM, 26(6):419--429, June 1983.
[32]
Mono Project. Mono. Available at http://www.mono-project.com/.
[33]
D. A. Moon. Garbage collection in a large LISP system. In Conference Record of the 1994 ACM Symposium on Lisp and Functional Programming, pages 235--245, Austin, TX, Aug. 1994.
[34]
J. H. Reppy. A high-performance garbage collector for Standard ML. Technical memorandum, AT&T Bell Laboratories, Murray Hill, NJ, Dec. 1993.
[35]
N. Sachindran and J. E. B. Moss. Mark-Copy: Fast copying GC with less space overhead. In Proceedings of the 18th ACM Conference on Object-Oriented Programming, Systems, Languages, & Applications, volume 38(11), pages 326--343, Anaheim, CA, Oct. 2003.
[36]
Y. Smaragdakis, S. Kaplan, and P. Wilson. The EELRU adaptive replacement algorithm. Perform. Eval., 53(2):93--123, 2003.
[37]
S. Soman, C. Krintz, and D. F. Bacon. Dynamic selection of application-specific garbage collectors. In Proceedings of the International Symposium on Memory Management, pages 49--60, Vancouver, BC, Canada, June 2004.
[38]
Standard Performance Evaluation Corporation. Specjbb2000. Available at http://www.spec.org/jbb2000/docs/userguide.html.
[39]
D. Ungar. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. In Proceedings of the First ASM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, volume 19(9), pages 157--167, Apr. 1984.
[40]
M. Wegiel and C. Krintz. XMem: type-safe, transparent, shared memory for cross-runtime communication and coordination. In Proceedings of the 2008 ACM SIGPLAN Conference on Programming Language Design and Implementation, volume 43(6), pages 327--338, Tucson, AZ, June 2008.
[41]
M. Wegiel and C. Krintz. Dynamic prediction of collection yield for managed runtimes. In Proceeding of the 14th international conference on Architectural support for programming languages and operating systems, volume 44(3), pages 289--300, Washington, DC, Mar. 2009.
[42]
Wikipedia. procfs -- Wikipedia, the free encyclopedia, 2011. {Online; accessed 1-Feb-2011}.
[43]
F. Xian, W. Seisa-an, and H. Jiang. MicroPhase: An approach to proactively invoking garbage collection for improved performance. In Proceedings of the 22nd ACM Conference on Object-Oriented Programming, Systems, Languages, & Applications, volume 42(10), pages 77--96, Montreal, Quebec, Canada, Oct. 2007.
[44]
T. Yang, E. D. Berger, S. F. Kaplan, and J. E. B. Moss. CRAMM: virtual memory support for garbage-collected applications. In Proceedings of the Symposium on Operating Systems Design and Implementation, pages 103--116, Seattle, WA, Nov. 2006.
[45]
T. Yang, M. Hertz, E. D. Berger, S. F. Kaplan, and J. E. B. Moss. Automatic heap sizing: taking real memory into account. In Proceedings of the International Symposium on Memory Management, pages 61--72, Vancouver, BC, Canada, June 2004.
[46]
C. Zhang, K. Kelsey, X. Shen, C. Ding, M. Hertz, and M. Ogihara. Program-level adaptive memory management. In Proceedings of the International Symposium on Memory Management, pages 174--183, Ottawa, ON, Canada, June 2006.
[47]
Y. Zhang, A. Bestavros, M. Guirguis, I. Matta, and R. West. Friendly virtual machines: leveraging a feedback-control model for application adaptation. In Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments, pages 2--12, Chicago, IL, June 2005.
[48]
P. Zhou, V. Pandey, J. Sundaresan, A. Raghuraman, Y. Zhou, and S. Kumar. Dynamic tracking of page miss ratio curve for memory management. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems, volume 39(11), pages 177--188, Boston, MA, Oct. 2004.

Cited By

View all
  • (2022)Optimal heap limits for reducing browser memory useProceedings of the ACM on Programming Languages10.1145/35633236:OOPSLA2(986-1006)Online publication date: 31-Oct-2022
  • (2020)Efficient nursery sizing for managed languages on multi-core processors with shared cachesProceedings of the 18th ACM/IEEE International Symposium on Code Generation and Optimization10.1145/3368826.3377908(1-15)Online publication date: 22-Feb-2020
  • (2018)Dynamic vertical memory scalability for OpenJDK cloud applicationsACM SIGPLAN Notices10.1145/3299706.321056753:5(59-70)Online publication date: 18-Jun-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ISMM '11: Proceedings of the international symposium on Memory management
June 2011
148 pages
ISBN:9781450302630
DOI:10.1145/1993478
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 46, Issue 11
    ISMM '11
    November 2011
    135 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2076022
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 June 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. multiprogramming
  2. paging
  3. poor richard's memory manager garbage collection
  4. throughput

Qualifiers

  • Research-article

Conference

ISMM '11
Sponsor:
ISMM '11: International Symposium on Memory Management
June 4 - 5, 2011
California, San Jose, USA

Acceptance Rates

Overall Acceptance Rate 72 of 156 submissions, 46%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)9
  • Downloads (Last 6 weeks)0
Reflects downloads up to 31 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Optimal heap limits for reducing browser memory useProceedings of the ACM on Programming Languages10.1145/35633236:OOPSLA2(986-1006)Online publication date: 31-Oct-2022
  • (2020)Efficient nursery sizing for managed languages on multi-core processors with shared cachesProceedings of the 18th ACM/IEEE International Symposium on Code Generation and Optimization10.1145/3368826.3377908(1-15)Online publication date: 22-Feb-2020
  • (2018)Dynamic vertical memory scalability for OpenJDK cloud applicationsACM SIGPLAN Notices10.1145/3299706.321056753:5(59-70)Online publication date: 18-Jun-2018
  • (2018)Dynamic vertical memory scalability for OpenJDK cloud applicationsProceedings of the 2018 ACM SIGPLAN International Symposium on Memory Management10.1145/3210563.3210567(59-70)Online publication date: 18-Jun-2018
  • (2017)SmartGC: Online Memory Management Prediction for PaaS Cloud ModelsOn the Move to Meaningful Internet Systems. OTM 2017 Conferences10.1007/978-3-319-69462-7_25(370-388)Online publication date: 20-Oct-2017
  • (2015)The judgment of forseti: economic utility for dynamic heap sizing of multiple runtimesACM SIGPLAN Notices10.1145/2887746.275418050:11(143-156)Online publication date: 14-Jun-2015
  • (2015)Speculative Memory CheckpointingProceedings of the 16th Annual Middleware Conference10.1145/2814576.2814802(197-209)Online publication date: 24-Nov-2015
  • (2015)The judgment of forseti: economic utility for dynamic heap sizing of multiple runtimesProceedings of the 2015 International Symposium on Memory Management10.1145/2754169.2754180(143-156)Online publication date: 14-Jun-2015
  • (2014)GinsengACM SIGPLAN Notices10.1145/2674025.257619749:7(41-52)Online publication date: 1-Mar-2014
  • (2014)We are all economists nowProceedings of the 9th International Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems PLE10.1145/2633301.2633304(1-10)Online publication date: 28-Jul-2014
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media