A computer-implemented method for allocating input/output bandwidth in storage systems, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising: allocating, in accordance with a pre-defined service-level agreement, an assigned amount of input/output bandwidth to an application that performs input/output operations on a storage system, wherein the assigned amount is allocated by assigning a number of credits to the application, wherein each credit corresponds to a certain amount of bandwidth; receiving a request from the application to perform an input/output operation on the storage system; identifying an amount of latency associated with fulfilling the input/output operation, wherein the amount of latency represents a severity of impact on the ability of the storage system to fulfill other requests to perform input/output operations on the storage system; calculating, based at least in part on the amount of latency associated with fulfilling the input/output operation, an amount of input/output bandwidth to be consumed by the input/output operation; deducting the amount of input/output bandwidth to be consumed by the input/output operation from the assigned amount of input/output bandwidth allocated to the application, wherein the deduction in the amount of bandwidth corresponds to a deduction of credits from the application's allocated credits based on the calculated bandwidth to be consumed; fulfilling the request by performing the input/output operation using the calculated amount of bandwidth; and allocating bandwidth to future input/output requests from the application from the remaining amount of input/output bandwidth allocated to the application. allocating, in accordance with a pre-defined service-level agreement, an assigned amount of input/output bandwidth to an application that performs input/output operations on a storage system, wherein the assigned amount is allocated by assigning a number of credits to the application, wherein each credit corresponds to a certain amount of bandwidth; receiving a request from the application to perform an input/output operation on the storage system; identifying an amount of latency associated with fulfilling the input/output operation, wherein the amount of latency represents a severity of impact on the ability of the storage system to fulfill other requests to perform input/output operations on the storage system; calculating, based at least in part on the amount of latency associated with fulfilling the input/output operation, an amount of input/output bandwidth to be consumed by the input/output operation; deducting the amount of input/output bandwidth to be consumed by the input/output operation from the assigned amount of input/output bandwidth allocated to the application, wherein the deduction in the amount of bandwidth corresponds to a deduction of credits from the application's allocated credits based on the calculated bandwidth to be consumed; fulfilling the request by performing the input/output operation using the calculated amount of bandwidth; and allocating bandwidth to future input/output requests from the application from the remaining amount of input/output bandwidth allocated to the application. <EOS>