An information handling system comprising: a processor; a storage resource for receiving input/output requests from an operating system executing on the processor; and a thermal filter driver comprising a program of instructions embodied in computer-readable media and executable by the processor, the thermal filter driver configured to, in response to issuance of one or more input/output requests to the storage resource: perform experimentation on an input/output queue comprising the one or more input/output requests; and based on the experimentation, determine modifications to be made to the input/output queue in order to provide a minimal impact to performance of input/output requests at the storage resource while satisfying thermal constraints of the storage resource; wherein the thermal filter driver is configured to, in order to perform experimentation and determine modifications: determine whether a current state of the input/output queue matches a previous queue state for which a modification was made that had a positive thermal impact to the storage resource; and in case it is determined that the current state fails to match the previous queue state: modify the input/output queue; and record a pattern of the current state, the modification made to the input/output queue, a thermal impact associated with the modification, and a performance impact associated with the modification; otherwise in case it is determined that the current state matches the previous queue state: modify the input/output queue in the same manner as was the previous queue state. a processor; a storage resource for receiving input/output requests from an operating system executing on the processor; and a thermal filter driver comprising a program of instructions embodied in computer-readable media and executable by the processor, the thermal filter driver configured to, in response to issuance of one or more input/output requests to the storage resource: perform experimentation on an input/output queue comprising the one or more input/output requests; and based on the experimentation, determine modifications to be made to the input/output queue in order to provide a minimal impact to performance of input/output requests at the storage resource while satisfying thermal constraints of the storage resource; perform experimentation on an input/output queue comprising the one or more input/output requests; and based on the experimentation, determine modifications to be made to the input/output queue in order to provide a minimal impact to performance of input/output requests at the storage resource while satisfying thermal constraints of the storage resource; wherein the thermal filter driver is configured to, in order to perform experimentation and determine modifications: determine whether a current state of the input/output queue matches a previous queue state for which a modification was made that had a positive thermal impact to the storage resource; and in case it is determined that the current state fails to match the previous queue state: modify the input/output queue; and record a pattern of the current state, the modification made to the input/output queue, a thermal impact associated with the modification, and a performance impact associated with the modification; otherwise in case it is determined that the current state matches the previous queue state: modify the input/output queue in the same manner as was the previous queue state. determine whether a current state of the input/output queue matches a previous queue state for which a modification was made that had a positive thermal impact to the storage resource; and in case it is determined that the current state fails to match the previous queue state: modify the input/output queue; and record a pattern of the current state, the modification made to the input/output queue, a thermal impact associated with the modification, and a performance impact associated with the modification; modify the input/output queue; and record a pattern of the current state, the modification made to the input/output queue, a thermal impact associated with the modification, and a performance impact associated with the modification; otherwise in case it is determined that the current state matches the previous queue state: modify the input/output queue in the same manner as was the previous queue state.