Dynamically routing input/output commands
Methods, systems, and products for dynamically routing I/O commands includes receiving an input/output (I/O) command targeting a destination target, selecting, from a plurality of paths to the destination target, a path based on power consumption and a command response time associated with the path, and processing the I/O command on the selected path.
1 . A method performed by an input/output (I/O) controller of a computing system, the method comprising:
receiving, by the I/O controller, an I/O input/output (I/O) command targeting a destination target;
selecting, by the I/O controller and from a plurality of paths to the destination target, a path based on power consumption and a command response time associated with the path,
wherein the power consumption is based on an amount of power consumed by an adapter, of the computing system, associated with the path; and
processing the I/O command on the selected path.
2 . The method of claim 1 , further comprising tracking, for a plurality of I/O commands and at each of the plurality of paths, the power consumption and the command response time.
3 . The method of claim 2 , further comprising ranking each of the plurality of paths based on the tracked power consumption and the tracked command response time associated with each path.
4 . The method of claim 3 , wherein selecting the path includes selecting a highest ranked path.
5 . The method of claim 3 , wherein a path of the plurality of paths is not ranked if the command response time associated with the path is greater than a threshold.
6 . The method of claim 3 , wherein a ranking of a path is increased based on a utilization rate of the path.
7 . The method of claim 3 , wherein the ranking is performed periodically.
8 . The method of claim 3 , wherein the ranking is performed for each received I/O command,
wherein ranking each of the plurality of paths comprises:
dynamically adjusting a ranking of the path based on changes to the command response time associated with the path,
wherein the changes are based on the path being selected for one or more I/O commands, and
wherein selecting the path comprises:
selecting the path based on a threshold of usage.
9 . A computing system comprising:
a processor;
memory; and
an input/output (I/O) controller for controlling I/O operations from the computing system, the I/O controller configured to:
receive an I/O command targeting a destination target;
select, from a plurality of paths to the destination target, a path based on power consumption and a command response time associated with the path,
wherein the power consumption is based on an amount of power consumed by an adapter, of the computing system, associated with the path; and
process the I/O command on the selected path.
10 . The computing system of claim 9 , further comprising tracking, for a plurality of I/O commands and at each of the plurality of paths, the power consumption and the command response time.
11 . The computing system of claim 10 , further comprising ranking each of the plurality of paths based on the tracked power consumption and the tracked command response time associated with each path.
12 . The computing system of claim 11 , wherein selecting the path includes selecting a highest ranked path.
13 . The computing system of claim 11 , wherein a path of the plurality of paths is not ranked if the command response time associated with the path is greater than a threshold.
14 . The computing system of claim 11 , wherein a ranking of a path is increased based on a utilization rate of the path.
15 . The computing system of claim 11 , wherein the tracked power consumption and the tracked command response time associated with each path are weighted differently during the ranking of each of the plurality of paths.
16 . The computing system of claim 15 , wherein a weight of the tracked power consumption and weight of the tracked command response time are each selectable by a user.
17 . A computer program product comprising a computer readable storage medium and computer program instructions stored therein that, when executed, are configured to:
receive an input/output (I/O) command targeting a destination target;
select, from a plurality of paths to the destination target, a path based on power consumption and a command response time associated with the path,
wherein the power consumption is based on an amount of power consumed by an adapter, of a computing system, associated with the path; and
process the I/O command on the selected path.
18 . The computer program product of claim 17 , further comprising tracking, for a plurality of I/O commands and at each of the plurality of paths, the power consumption and the command response time.
19 . The computer program product of claim 18 , further comprising ranking each of the plurality of paths based on the tracked power consumption and the tracked command response time associated with each path.
20 . The computer program product of claim 19 , wherein selecting the path includes selecting a highest ranked path.