1. A computer-implemented method comprising: receiving, by a resource allocator executing on a processor, a request to execute a task on shared hardware resources; determining, by the resource allocator executing on the processor, a baseline resource credit per time interval associated with a computing resource for the task; monitoring, by the resource allocator executing on the processor, a performance metric associated with the computing resource to determine a utilization amount of the computing resource by the task during a first time interval; determining, by the resource allocator executing on the processor, an unused amount of the computing resource in the first time interval based on a difference between the utilization amount and the baseline resource credit; incrementing, by the resource allocator executing on the processor, a resource credit balance based on the unused amount of the computing resource in the first time interval; determining, by the resource allocator executing on the processor, that a workload of the task during a second time interval is demanding an additional amount of the computing resource in addition to the baseline resource credit of the computing resource; allocating, by the resource allocator executing on the processor, the additional amount of the computing resource to the task in the second time interval, the additional amount being less than or equal to the resource credit balance, wherein the additional amount corresponds to a percentage increase of the computing resource; and allocating, by the resource allocator executing on the processor, the same percentage increase of a memory resource to the task in the second time interval.