Patent ID: 8683472

Claim:
A computer system comprising: a plurality of multithreaded applications resident in a memory of the computer system, each multithreaded application comprising a plurality of independently executable tasks, each task comprising a plurality of threads and each thread using one or more resources; a performance monitor interface, the performance monitor interface providing performance measurement capabilities to the plurality of multithreaded applications to obtain performance information on a thread level; a process layer to obtain utilization information of the resources; a central monitoring component, wherein the central monitoring component performs actions comprising: receiving one or more performance measurements for the plurality of multithreaded applications, and one or more utilization measurements for the resources used by the threads of the plurality of multithreaded applications, wherein the received performance measurements comprise processing times for the plurality of multithreaded applications and the processing times for the threads of the applications; determining that a processing time of a first application of the plurality of multithreaded applications does not meet a first performance target; determining that a first thread of the first application needs a disproportional amount of processing time; determining that a first resource used by the first thread is overutilized; determining a second thread that uses the first resource, wherein the first thread and the second thread belong to different tasks; and in response to determining the second thread, throttling the second thread by adjusting a priority of the second thread.