Using observed thread activity to dynamically tune a virtual machine for responsiveness
First Claim
Patent Images
1. A method for using observed thread activity to dynamically tune a virtual machine for responsiveness or throughput, comprising:
- in a computer system, performing the operations of;
observing the activity of a thread in a set of threads to determine whether the thread needs at least one of responsiveness or throughput, wherein observing the activity of a thread involves identifying a priority for the thread, wherein if the thread is a high-priority thread, the thread is categorized as needing responsiveness;
gathering statistics for the thread from the observations of thread activity to determine a level of responsiveness needed by the thread, wherein gathering the statistics comprises tracking at least one of frequency of context switches of high-priority threads and intervals between the execution of high-priority threads, and maintaining a set of measured values corresponding to the level of responsiveness, the measured values being decayed over time to ensure that the measured values reflect recent behavior; and
dynamically tuning a virtual machine upon which the thread will execute based on the gathered statistics and the level of responsiveness.
2 Assignments
0 Petitions
Accused Products
Abstract
One embodiment of the present invention provides a system that uses observed thread activity to dynamically tune a virtual machine for responsiveness and/or throughput. During operation, the system observes the activity of a thread to determine whether the thread needs responsiveness and/or throughput. Next, the system gathers statistics for the thread based on these observations of thread activity, and then uses these statistics to dynamically tune a virtual machine upon which the thread will execute.
-
Citations
18 Claims
-
1. A method for using observed thread activity to dynamically tune a virtual machine for responsiveness or throughput, comprising:
-
in a computer system, performing the operations of; observing the activity of a thread in a set of threads to determine whether the thread needs at least one of responsiveness or throughput, wherein observing the activity of a thread involves identifying a priority for the thread, wherein if the thread is a high-priority thread, the thread is categorized as needing responsiveness; gathering statistics for the thread from the observations of thread activity to determine a level of responsiveness needed by the thread, wherein gathering the statistics comprises tracking at least one of frequency of context switches of high-priority threads and intervals between the execution of high-priority threads, and maintaining a set of measured values corresponding to the level of responsiveness, the measured values being decayed over time to ensure that the measured values reflect recent behavior; and dynamically tuning a virtual machine upon which the thread will execute based on the gathered statistics and the level of responsiveness. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for using observed thread activity to dynamically tune a virtual machine for responsiveness or throughput, the method comprising:
-
observing the activity of a thread in a set of threads to determine whether the thread needs at least one of responsiveness or throughput, wherein observing the activity of a thread involves identifying a priority for the thread, wherein if the thread is a high-priority thread, the thread is categorized as needing responsiveness; gathering statistics for the thread from the observations of thread activity to determine a level of responsiveness needed by the thread, wherein gathering the statistics comprises tracking at least one of frequency of context switches of high-priority threads and intervals between the execution of high-priority threads, and maintaining a set of measured values corresponding to the level of responsiveness, the measured values being decayed over time to ensure that the measured values reflect recent behavior; and dynamically tuning a virtual machine upon which the thread will execute based on the gathered statistics and the level of responsiveness. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A computing device that includes a processor that uses observed thread activity to dynamically tune a virtual machine for responsiveness and/or throughput, wherein the processor comprises:
-
an observation mechanism that observes the activity of a thread in a set of threads to determine whether the thread needs at least one of responsiveness or throughput, wherein the observation mechanism is further configured to identify a priority for the thread, and wherein if the thread is identified as a high-priority thread, the thread is categorized as needing responsiveness; a gathering mechanism that gathers statistics for the thread from the observations of thread activity to determine a level of responsiveness needed by the thread, wherein gathering the statistics comprises tracking a set of access patterns comprises tracking at least one of frequency of context switches of high-priority threads and intervals between the execution of high-priority threads, and maintaining a set of measured values corresponding to the level of responsiveness, the measured values being decayed over time to ensure that the measured values reflect recent behavior; and a tuning mechanism configured to dynamically tune a virtual machine upon which the thread will execute based on the gathered statistics and the level of responsiveness. - View Dependent Claims (15, 16, 17, 18)
-
Specification