IP Library Granted Patent US 8,356,061
Granted Patent B2
US 8,356,061 · App. 12/144,100 · Granted Jan 15, 2013

Maximizing throughput for a garbage collector

Inventor: David Vengerov (Santa Clara, CA)
Assignee: Oracle America, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,356,061
App. No.
12/144,100
Granted
Jan 15, 2013
Kind
B2
Abstract

Some embodiments of the present invention provide a system that executes a garbage collector in a computing system. During operation, the system obtains a throughput model for the garbage collector and estimates a set of characteristics associated with the garbage collector. Next, the system applies the characteristics to the throughput model to estimate a throughput of the garbage collector. The system then determines a level of performance for the garbage collector based on the estimated throughput. Finally, the system adjusts a tunable parameter for the garbage collector based on the level of performance to increase the throughput of the garbage collector.

Claims (52)

1. A method for executing a garbage collector in a computing system, comprising:

in a processor, performing operations for:

obtaining a throughput model for the garbage collector, wherein the throughput model comprises a nonlinear objective function that relates a throughput of the garbage collector to a quotient of a first amount of time spent on application execution between two major collections and a second amount of time elapsed in a garbage collection cycle that includes a predetermined number of minor collections and a major collection;

estimating a set of characteristics associated with the garbage collector;

applying the characteristics to the throughput model to estimate a throughput of the garbage collector;

determining a level of performance for the garbage collector based on the estimated throughput; and

adjusting a tunable parameter for the garbage collector based on the level of performance to increase the throughput of the garbage collector, wherein the tunable parameter comprises at least one of a heap partition size associated with the garbage collector, a tenuring threshold associated with the garbage collector, or a setting that effects the behavior of the garbage collector.

2. The method of claim 1 , wherein determining the level of performance involves:

computing a first predicted throughput of the garbage collector based on a small increment of the tunable parameter;

computing a second predicted throughput of the garbage collector based on a small decrement of the tunable parameter; and

comparing the first predicted throughput and the second predicted throughput with the throughput,

wherein the tunable parameter is incremented or decremented based on the highest value found among the throughput, the first predicted throughput, and the second predicted throughput.

3. The method of claim 2 , wherein the tunable parameter is incremented or decremented by an amount that is determined by:

numerically evaluating derivatives of at least one of the characteristics; and

using the derivatives to determine a change in the tunable parameter that results in a maximum throughput from the throughput model.

4. The method of claim 2 , wherein a higher value for the throughput than the first predicted throughput and the second predicted throughput causes the tunable parameter to remain unchanged.

5. The method of claim 1 , wherein adjusting the tunable parameter involves alternating between adjusting the heap partition size and adjusting the tenuring threshold.

6. The method of claim 1 ,

wherein the throughput of the garbage collector is increased by maximizing the nonlinear object function.

7. The method of claim 1 , wherein the characteristics comprise an average minor collection time and an amount of data promoted to tenured data.

8. A computer system that executes a garbage collector, comprising:

a throughput model for the garbage collector, wherein the throughput model comprises a nonlinear objective function which is a mathematical expression relating a throughput of the garbage collector to a quotient of a first amount of time spent on application execution between two major collections and a second amount of time elapsed in a garbage collection cycle that includes a predetermined number of minor collections and a major collection; and

a processor that performs operations of a throughput analyzer configured to:

estimate a set of characteristics associated with the garbage collector;

apply the characteristics to the throughput model to estimate a throughput of the garbage collector;

determine a level of performance for the garbage collector based on the estimated throughput; and

adjust a tunable parameter for the garbage collector based on the level of performance to increase the throughput of the garbage collector, wherein the tunable parameter comprises at least one of a heap partition size associated with the garbage collector, a tenuring threshold associated with the garbage collector, or a setting that effects the behavior of the garbage collector.

9. The system of claim 8 , wherein the throughput analyzer is configured to determine the level of performance for the garbage collector by:

computing a first predicted throughput of the garbage collector based on a small increment of the tunable parameter;

computing a second predicted throughput of the garbage collector based on a small decrement of the tunable parameter; and

comparing the first predicted throughput and the second predicted throughput with the throughput,

wherein the tunable parameter is incremented or decremented based on the highest value found among the throughput, the first predicted throughput, and the second predicted throughput.

10. The system of claim 9 , wherein the tunable parameter is incremented or decremented by an amount that is determined by:

numerically evaluating derivatives of at least one of the characteristics; and

using the derivatives to determine a change in the tunable parameter that results in a maximum throughput from the throughput model.

11. The system of claim 9 , wherein a higher value for the throughput than the first predicted throughput and the second predicted throughput causes the tunable parameter to remain unchanged.

12. The system of claim 8 , wherein adjusting the tunable parameter involves alternating between adjusting the heap partition size and adjusting the tenuring threshold.

13. The system of claim 8 ,

wherein the throughput of the garbage collector is increased by maximizing the nonlinear object function.

14. The system of claim 8 , wherein the characteristics comprise an average minor collection time and an amount of data promoted to tenured data.

15. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for executing a garbage collector in a computing system, the method comprising:

obtaining a throughput model for the garbage collector, wherein the throughput model comprises a nonlinear objective function that relates a throughput of the garbage collector to a quotient of a first amount of time spent on application execution between two major collections and a second amount of time elapsed in a garbage collection cycle that includes a predetermined number of minor collections and a major collection;

estimating a set of characteristics associated with the garbage collector;

applying the characteristics to the throughput model to estimate a throughput of the garbage collector;

determining a level of performance for the garbage collector based on the estimated throughput; and

adjusting a tunable parameter for the garbage collector based on the level of performance to increase the throughput of the garbage collector, wherein the tunable parameter comprises at least one of a heap partition size associated with the garbage collector, a tenuring threshold associated with the garbage collector, or another setting that effects the behavior of the garbage collector.

16. The computer-readable storage medium of claim 15 , wherein determining the level of performance involves:

computing a first predicted throughput of the garbage collector based on a small increment of the tunable parameter;

computing a second predicted throughput of the garbage collector based on a small decrement of the tunable parameter; and

comparing the first predicted throughput and the second predicted throughput with the throughput,

wherein the tunable parameter is incremented or decremented based on the highest value found among the throughput, the first predicted throughput, and the second predicted throughput.

17. The computer-readable storage medium of claim 15 , wherein adjusting the tunable parameter involves alternating between adjusting the heap partition size and adjusting the tenuring threshold.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0195 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2008
From: VENGEROV, DAVID
To: SUN MICROSYSTEMS, INC.
Reel/Frame 021255/0678 →
Continuity (1)
Related Publication 20090319255A1 · Dec 24, 2009